FND_EVENT 以 ('PURCHASE_ORDER_RELEASED'.'PurchaseOrder') 為例
FND_EVENT: PURCHASE_ORDER_RELEASED'.'PurchaseOrder'FND_EVENT_PARAMETER:
NameType
BUYER_CODESTRING
BUYER_NAMESTRING
EVENT_DATETIMEDATETIME
ORDER_NOSTRING
TOTAL_BASE_PRICENUMBER
USER_DESCRIPTIONSTRING
USER_IDENTITYSTRING
USER_MAIL_ADDRESSSTRING
USER_MOBILE_PHONESTRING
VENDOR_MAIL_ADDRESSSTRING
VENDOR_NAMESTRING
VENDOR_NOSTRING
FND_EVENT_ACTION
PROCEDURE Release__ (
info_ OUT VARCHAR2,
objid_ IN VARCHAR2,
objversion_ IN OUT VARCHAR2,
attr_ IN OUT VARCHAR2,
action_ IN VARCHAR2 )
IS
rec_ PURCHASE_ORDER_TAB%ROWTYPE;
BEGIN
General_SYS.Init_Method(lu_name_, 'PURCHASE_ORDER_API', 'Release__');
Client_SYS.Clear_Attr(attr_);
IF (action_ = 'CHECK') THEN
NULL;
ELSIF (action_ = 'DO') THEN
rec_ := Lock_By_Id___(objid_, objversion_);
Finite_State_Machine___(rec_, 'Release', attr_);
objversion_ := to_char(rec_.rowversion, 'YYYYMMDDHH24MISS');
Finite_State_Add_To_Attr___(rec_, attr_);
Purch_Order_Event_Creation_API.Purchase_Order_Released(rec_.order_no);
END IF;
info_ := Client_SYS.Get_All_Info;
END Release__;
Purch_Order_Event_Creation_API.Purchase_Order_Released(rec_.order_no);
PROCEDURE Purchase_Order_Released (
order_no_IN VARCHAR2 )
IS
msg_ VARCHAR2(2000);
fnd_user_ VARCHAR2(30);
vendor_no_ VARCHAR2(10);
buyer_code_ VARCHAR2(20);
temp_info_ VARCHAR2(2000);
ptr_ NUMBER;
name_ VARCHAR2(2000);
value_ VARCHAR2(2000);
CURSOR get_purorder_info IS
SELECT vendor_no,
buyer_code
FROM PURCHASE_ORDER
WHERE order_no = order_no_;
BEGIN
General_SYS.Init_Method(lu_name_, 'PURCH_ORDER_EVENT_CREATION_API', 'Purchase_Order_Released');
IF (Event_SYS.Event_Enabled('PurchaseOrder', 'PURCHASE_ORDER_RELEASED')) THEN
msg_ := Message_SYS.Construct('PURCHASE_ORDER_RELEASED');
--
-- Standard Event Parameters
--
fnd_user_ := Fnd_Session_API.Get_Fnd_User;
Message_SYS.Add_Attribute( msg_, 'EVENT_DATETIME', Site_API.Get_Site_Date(Purchase_Order_API.Get_Contract(order_no_)));
Message_SYS.Add_Attribute( msg_, 'USER_IDENTITY', fnd_user_);
Message_SYS.Add_Attribute( msg_, 'USER_DESCRIPTION', Fnd_User_API.Get_Description(fnd_user_));
Message_SYS.Add_Attribute( msg_, 'USER_MAIL_ADDRESS', Fnd_User_API.Get_Property(fnd_user_, 'SMTP_MAIL_ADDRESS'));
Message_SYS.Add_Attribute( msg_, 'USER_MOBILE_PHONE', Fnd_User_API.Get_Property(fnd_user_, 'MOBILE_PHONE'));
--
-- Primary key for object
--
Message_SYS.Add_Attribute( msg_, 'ORDER_NO', order_no_);
--
-- Other important information
--
OPEN get_purorder_info;
FETCH get_purorder_info INTO vendor_no_, buyer_code_;
CLOSE get_purorder_info;
Message_SYS.Add_Attribute( msg_, 'VENDOR_NO', vendor_no_);
Message_SYS.Add_Attribute( msg_, 'VENDOR_NAME', Supplier_API.Get_Vendor_Name(vendor_no_));
Message_SYS.Add_Attribute( msg_, 'VENDOR_MAIL_ADDRESS', Supplier_API.Get_Default_E_Mail(vendor_no_));
Message_SYS.Add_Attribute( msg_, 'TOTAL_BASE_PRICE', Purchase_Order_API.Calc_Order_Total(order_no_));
Message_SYS.Add_Attribute( msg_, 'BUYER_CODE', buyer_code_);
Message_SYS.Add_Attribute( msg_, 'BUYER_NAME', Purchase_Buyer_API.Get_Name(buyer_code_));
temp_info_ := Client_SYS.Get_All_Info();
Event_SYS.Event_Execute('PurchaseOrder', 'PURCHASE_ORDER_RELEASED', msg_);
IF (temp_info_ IS NOT NULL) THEN
WHILE (Client_SYS.Get_Next_From_Attr(temp_info_, ptr_, name_, value_ )) LOOP
Client_SYS.Add_Info(lu_name_, value_);
END LOOP;
END IF;
END IF;
END Purchase_Order_Released;
Event_SYS.Event_Execute('PurchaseOrder', 'PURCHASE_ORDER_RELEASED', msg_);
Fnd_Event_Action_API.Activate_Action(event_lu_name_, event_id_, my_rec_.action_number, formatted_data_);
--->fnd_event_action_api.action_mail ---->Command_SYS.Mail
PROCEDURE Action_Mail (
mail_data_ IN VARCHAR2,
msg_ IN VARCHAR2 )
IS
from_name_VARCHAR2(2000);
to_name_ VARCHAR2(2000);
text_ VARCHAR2(32000);
subject_ VARCHAR2(2000);
attach_ VARCHAR2(2000);
error_text_ VARCHAR2(2000);
cc_ VARCHAR2(2000);
timer_ VARCHAR2(2000);
audit_ VARCHAR2(2000);
from_alias_ VARCHAR2(2000);
mail_ VARCHAR2(32000);
BEGIN
General_SYS.Init_Method(lu_name_, 'FND_EVENT_ACTION_API', 'Action_Mail');
mail_ := Make_Message(mail_data_, msg_);
-- FROM is not mandatory. Use Appowner if not stated.
from_name_ := Message_SYS.Find_Attribute(mail_, 'FROM', Fnd_Session_API.Get_App_Owner);
to_name_ := Set_Parameter(mail_, 'TO');
text_ := Set_Parameter(mail_, 'MESSAGE');
subject_ := Set_Parameter(mail_, 'SUBJECT');
attach_ := Set_Parameter(mail_, 'ATTACH');
Command_SYS.Mail(from_name_,to_name_,text_, error_text_,attach_,cc_,
subject_,timer_, audit_,from_alias_);
END Action_Mail;
頁:
[1]