परिचय
Oracle® APP_MULTI पैकेज आपको एक फॉर्म में मल्टी-सेलेक्शन कार्यक्षमता जोड़ने में सक्षम बनाता है। यह विकल्प APPCORE लाइब्रेरी में उपलब्ध है।
APP_MULTI पैकेज का उपयोग करके, आप सिंगल या मल्टीपल रिकॉर्ड चुन सकते हैं और उन्हें आवश्यकतानुसार प्रोसेस कर सकते हैं। निम्न चित्र रैंडम रिकॉर्ड चयन को दर्शाता है:
चित्र स्रोत: https://i36.me/images/oracle/ebs/ebs_frm_lnchse_with_app_multi_01.jpg
कार्यक्षमता
APP_MULTI पैकेज आपको निम्नलिखित क्रियाएं करने में सक्षम बनाता है:
- एक रिकॉर्ड चुनने के लिए उस पर क्लिक करें।
- Ctrl कुंजी दबाकर रखें और एक साथ कई रिकॉर्ड चुनने के लिए उन पर क्लिक करें।
- एप्लिकेशन मेनू से Select All चुनकर सभी रिकॉर्ड चुनें।
- एप्लिकेशन मेनू से Deselect All चुनकर सभी चयनित रिकॉर्ड को अचयनित करें।
- पहले रिकॉर्ड पर क्लिक करें, और शिफ्ट कुंजी दबाए रखते हुए अनुक्रम में अंतिम रिकॉर्ड पर क्लिक करके कई सन्निकट रिकॉर्ड चुनें।
APP_MULTI पैकेज इवेंट्स
APP_MULTI पैकेज फॉर्म पर निम्नलिखित इवेंट्स का जवाब देता है:
KEY-CLRFRM: (फॉर्म-लेवल) फॉर्म क्लियर करने से पहले रिकॉर्ड को मान्य करता है। उपयोग उदाहरण:
APP_MULTI.EVENT('KEY-CLRFRM');KEY-CLRREC: (ब्लॉक-लेवल) वर्तमान रिकॉर्ड क्लियर करने पर फायर होता है। यह
clear_recordकमांड के समतुल्य है।KEY-CREREC: (ब्लॉक-लेवल) नया रिकॉर्ड बनाने पर फायर होता है। यह
create_recordकमांड के समतुल्य है।KEY-DELREC: (ब्लॉक-लेवल) मौजूदा रिकॉर्ड हटाने पर फायर होता है। यह
delete_recordकमांड के समतुल्य है।PRE-BLOCK: (ब्लॉक-लेवल) ब्लॉक में प्रवेश करने पर फायर होता है।
POST-BLOCK: (ब्लॉक-लेवल) ब्लॉक से बाहर निकलने पर फायर होता है।
SELECT_ALL: (ब्लॉक-लेवल) सभी रिकॉर्ड चुनने पर फायर होता है।
DESELECT_ALL: (ब्लॉक-लेवल) सभी रिकॉर्ड अचयनित करने पर फायर होता है।
WHEN-CLEAR-BLOCK: (ब्लॉक-लेवल) ब्लॉक क्लियर करने पर फायर होता है।
WHEN-MOUSE-CLICK: (ब्लॉक-लेवल) माउस क्लिक करने पर फायर होता है।
WHEN-NEW-RECORD-INSTANCE: (ब्लॉक-लेवल) ब्लॉक पर रिकॉर्ड बनाने या क्वेरी करने पर फायर होता है।
मैन्युअली ट्रिगर बनाएं
आपको आवश्यक ट्रिगर बनाने और APP_MULTI.EVENT प्रक्रिया को स्पष्ट रूप से कॉल करने की आवश्यकता है, जिसे संभाले जा रहे इवेंट का नाम पास करके, जैसा कि निम्न उदाहरण में दिखाया गया है:
PROCEDURE event(p_event_name VARCHAR2,p_blockname VARCHAR2 DEFAULT NULL);
उदाहरण के लिए, KEY-CLRREC ट्रिगर निम्न कमांड जितना सरल हो सकता है:
APP_MULTI.EVENT('KEY-CLRREC');
नोट: प्रक्रिया एक वैकल्पिक तर्क p_blockname स्वीकार करती है। यदि आप p_blockname पास नहीं करते हैं, तो प्रक्रिया SYSTEM.TRIGGER_BLOCK के मान का उपयोग करती है।
चयन और अचयन इवेंट्स
जब आप कस्टम MULTI_RETURN_ACTION ट्रिगर को लागू करते हैं (या तो डेटा ब्लॉक में या फॉर्म के टॉप-लेवल पर), तो सिस्टम आपको रिकॉर्ड चयन और अचयन के बारे में सूचित करता है। ट्रिगर हर व्यक्तिगत या बल्क रिकॉर्ड चयन या अचयन के बाद फायर होता है।
ट्रिगर वेरिएबल्स
आप ट्रिगर्स में निम्नलिखित वेरिएबल्स का उपयोग कर सकते हैं:
GLOBAL.APPCORE_MULTI_BLOCK ग्लोबल: उस डेटा ब्लॉक का नाम है जो रिकॉर्ड चयन या अचयन से प्रभावित होता है।
GLOBAL.APPCORE_MULTI_ACTION ग्लोबल: निम्नलिखित में से कोई भी मान हो सकता है:
- **'RECORD\_SELECTED'**: जब एक रिकॉर्ड चुना जाता है - **'RECORD\_DESELECTED'**: जब एक रिकॉर्ड अचयनित होता है - **'LABEL\_CHANGE'**: जब **Select All** या **Deselect All** मेनू आइटम सक्षम या अक्षम होते हैंAPP_MULTI.LOOPING पैकेज वेरिएबल: TRUE या FALSE मान होता है, यह इस पर निर्भर करता है कि आपने MULTI_RECORD_ACTION को लूप के भीतर कॉल किया है।
फॉर्म पर चयनित डेटा पुनर्प्राप्त करें
प्रत्येक डेटा ब्लॉक के लिए, APP_MULTI पैकेज में वर्तमान में चयनित रिकॉर्ड के रिकॉर्ड नंबर के साथ एक रिकॉर्ड ग्रुप होता है।
डेटा ब्लॉक का नाम प्रदान करके आप निम्नलिखित कार्य कर सकते हैं:
किसी विशिष्ट डेटा ब्लॉक के लिए रिकॉर्ड ग्रुप के Only कॉलम को एक्सेस करने के लिए **APP_MULTI.GET_GROUP_COL** फ़ंक्शन का उपयोग करें।
चयनित रिकॉर्ड की संख्या प्राप्त करने के लिए APP_MULTI.GET_GROUP_COUNT का उपयोग करें।
उदाहरण के लिए, एक डिस्क्रीट जॉब्स फॉर्म, ब्लॉक W_JOBS, और एक फील्ड, WIP_ENTITY_ID दिए जाने पर, आप निम्न PL/SQL कोड का उपयोग करके चयनित जॉब्स के आईडी प्रिंट कर सकते हैं:
DECLARE
record_number_column groupcolumn;
selected_record_count NUMBER;
BEGIN
record_number_column := app_multi.get_group_col ('W_JOBS');
selected_record_count :=app_multi.get_group_count ('W_JOBS');
FOR i IN 1 .. selected_record_count LOOP
DECLARE
record_number NUMBER;
v_wip_entity_id NUMBER;
BEGIN
record_number := GET_GROUP_NUMBER_CELL (record_number_column, i);
GO_RECORD (record_number);
v_wip_entity_id := NAME_IN ('W_JOBS.WIP_ENTITY_ID');
fnd_message.debug ( 'v_wip_entity_id' || v_wip_entity_id);
EXCEPTION WHEN OTHERS THEN Null;
END;
END LOOP;
END;
निष्कर्ष
APP_MULTI पैकेज के साथ, आप कस्टम Oracle फॉर्म में बल्क डेटा प्रोसेस कर सकते हैं। यह पैकेज आपको उन बल्क डेटा का विवरण प्राप्त करने देता है जो उपयोगकर्ता स्टैंडर्ड फॉर्म पर चुनता है। आप इसे फॉर्म पर्सनलाइज़ेशन या custom.pll कोड में उपयोग करके स्टैंडर्ड Oracle फॉर्म में कस्टम कार्यक्षमता जोड़ सकते हैं।