Close_FORM('XX_FORM001');show_window('XX_FORM001',4,0.5);1:定义
fnd_descr_flex.define(BLOCK => 'BLK_ROUTING_LINES',field => 'DESC_FLEX',appl_short_name => 'XX',
desc_flex_name => 'XX_OM_INT_ROUTING_LINES');2:
Message('Cannot delete master record when matching detail records exist.');RAISE Form_Trigger_Failure;
go_block('BLK_ROUTING_HEADERS');hide_window('WIN_STEP');
app_window.set_coordination('WHEN-WINDOW-CLOSED',:BLK_REP_STEP_CTL.COORDINATION_S TEP,'R_ROUTING_HEADER_STEPS');3 设置弹出信息
fnd_message.set_string(GET_ITEM_PROPERTY(p_item,PROMPT_TEXT)||' '
||'can not be blank, please enter'||' '
||GET_ITEM_PROPERTY(p_item,PROMPT_TEXT));fnd_message.show;RAISE form_trigger_failure;带有提⽰YES OR NO
win_nm := get_view_property(canvas_nm,WINDOW_NAME);
FND_MESSAGE.SET_STRING('Do you want to save the changes you have made?');ln_quest_count := FND_MESSAGE.QUESTION( 'Yes','No','Cancel',NULL);
IF ln_quest_count =1 THENDO_KEY('COMMIT_FORM');clear_block(no_validate);
app_custom.close_window(win_nm);ELSIF ln_quest_count = 2 THENclear_block(no_validate);
app_custom.close_window(win_nm);ELSENULL;END IF;5:Insert intoINSERT INTO ….EXCEPTION
WHEN OTHERS THEN
fnd_message.set_string(SQLERRM || ' : ' || SQLCODE);fnd_message.ERROR;RAISE form_trigger_failure6: UpdateUpdate….EXCEPTION
WHEN OTHERS THEN
fnd_message.set_string(SQLERRM || ' : ' || SQLCODE);fnd_message.ERROR;RAISE form_trigger_failure7: Delete
DELETE FROM XX_OM_INT_ROUTING_HEADERS
WHERE routing_header_id = :BLK_ROUTING_HEADERS.routing_header_id;IF (SQL%NOTFOUND)THEN
RAISE NO_DATA_FOUND;END IF;8: lock_id
PROCEDURE lock_rowIS
CURSOR c_row ISSELECT *
FROM XX_OM_INT_ROUTING_HEADERS
WHERE ROWID = :BLK_ROUTING_HEADERS.row_id
FOR UPDATE OF routing_header_id NOWAIT;rec c_row%ROWTYPE;i NUMBER := 0;BEGINLOOPBEGINi := i + 1;OPEN c_row;FETCH c_rowINTO rec;
IF (c_row%NOTFOUND)THENCLOSE c_row;
fnd_message.set_name('FND','FORM_RECORD_DELETED');fnd_message.error;
RAISE FORM_TRIGGER_FAILURE;END IF;CLOSE c_row;
IF ec.ROUTING_HEADER_ID = :BLK_ROUTING_HEADERS.ROUTING_HEADER_ID) THEN RETURN;ELSE
fnd_message.set_name('FND','FORM_RECORD_CHANGED');fnd_message.error;
RAISE FORM_TRIGGER_FAILURE;END IF;EXCEPTION
WHEN app_exception.record_lock_exception THENapp_exception.record_lock_error(i);END;END LOOP;END lock_row;End;LOV
返回⼀个值
下拉List:
例外处理问题
有很多⼈喜欢在处理exception时,置为'null',应该说这是⼀个很不好的习惯,如果没有定义特定的exception,最起码应该把数据库的错误信息完整的报出来。错误的写法:EXCEPTION
WHEN OTHERS THENNULL;END;正确的写法:EXCEPTION
WHEN OTHERS THEN
FND_FILE.PUT_LINE(FND_FILE.OUTPUT, SQLCODE);FND_FILE.PUT_LINE(FND_FILE.OUTPUT, SQLERRM);END;
创建⾏记录时,⾃动创建连续的序列号WHEN-NEW-RECORD-INSTANCE:
IF NVL(:BLK_LINE.LINE_ID,0) = 0 and :BLK_LINE.ROW_NUM is null THEN:BLK_LINE.ROW_NUM := :SYSTEM.TRIGGER_RECORD;
set_record_property(:system.trigger_record,:system.trigger_block ,STATUS,NEW_STAT US);END IF;实例
CREATE OR REPLACE VIEW CUX_XX_POLINES ASSELECT a.pokey,
http://www.doczj.com/doc/9f17345681.html _id,a.pono,a.linno,a.itemno
FROM XX_POLINE aWHERE nvl(org_id,
nvl(to_number(decode(substrb(userenv('CLIENT_INFO'),1,1),' ',NULL,
substrb(userenv('CLIENT_INFO'),1,10))),-99))=
nvl(to_number(decode(substrb(userenv('CLIENT_INFO'),1,1),' ',NULL,
substrb(userenv('CLIENT_INFO'),1,10))),-99);
2.4.2. 注册表和字段
--需要向EBS注册表和字段,这样以后就可通过标准功能设置弹性域、监控表操作。-- Created on 2014-11-05 by ROBLE.PENGdeclare
-- Local variables herei integer;begin
-- Test statements here
AD_DD.REGISTER_TABLE('OE','XX_POLINE','T',2,10,40);
AD_DD.REGISTER_COLUMN('OE','XX_POLINE','POKEY',1,'NUMBER',38,'N','N');AD_DD.REGISTER_COLUMN('OE','XX_POLINE','ORG_ID',2,'NUMBER',38,'Y','N');AD_DD.REGISTER_COLUMN('OE','XX_POLINE','LINENO',3,'NUMBER',38,'N','N');AD_DD.REGISTER_COLUMN('OE','XX_POLINE','PONO',4,'VARCHAR2',30,'N','N');AD_DD.REGISTER_COLUMN('OE','XX_POLINE','ITEMNO',5,'VARCHAR2',30,'Y','N');-- AD_DD.REGISTER_COLUMN('SCF','XX_POLINE','ORDERED_DATE',4,'DATE',9,'N','N');
-- AD_DD.REGISTER_COLUMN('SCF','XX_POLINE','PROGRAM_UPDATE_DATE',19,'DATE',9,'Y','N'); --AD_DD.REGISTER_COLUMN('SCF','XX_POLINE','ATTRIBUTE2',23,'VARCHAR2',240,'Y','N');end;
因篇幅问题不能全部显示,请点此查看更多更全内容