Oracle Web Adi For upload item master
-
Upload
ahmed-elshayeb -
Category
Business
-
view
473 -
download
19
Transcript of Oracle Web Adi For upload item master
![Page 1: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/1.jpg)
WEBADI For Master Items Uploading1- Create Table
DROP TABLE APPS.SH_WEBADI_ITEM_UPLOAD CASCADE CONSTRAINTS;
CREATE TABLE APPS.SH_WEBADI_ITEM_UPLOAD( SEGMENT1 VARCHAR2(240 BYTE), SEGMENT2 VARCHAR2(240 BYTE), SEGMENT3 VARCHAR2(240 BYTE), ORGANIZATION_ID NUMBER(35), ORGANIZATION_CODE VARCHAR2(3 BYTE), DESCRIPTION VARCHAR2(240 BYTE), INVENTORY_ITEM_STATUS_CODE VARCHAR2(240 BYTE), TEMPLATE_ID VARCHAR2(240 BYTE), TEMPLATE_NAME VARCHAR2(30 BYTE), PRIMARY_UOM_CODE VARCHAR2(240 BYTE), ATTRIBUTE1 VARCHAR2(240 BYTE), PROCESS_FLAG NUMBER(35), SET_PROCESS_ID NUMBER(35), INTERFACE_STATUS VARCHAR2(240 BYTE), SUMMARY_FLAG VARCHAR2(240 BYTE), ENABLED_FLAG VARCHAR2(240 BYTE), SEGMENT4 VARCHAR2(240 BYTE), SEGMENT5 VARCHAR2(240 BYTE), SEGMENT6 VARCHAR2(240 BYTE), SEGMENT7 VARCHAR2(240 BYTE), SEGMENT8 VARCHAR2(240 BYTE), TRANSACTION_TYPE VARCHAR2(240 BYTE))CREATE OR REPLACE PUBLIC SYNONYM SH_WEBADI_ITEM_UPLOAD FOR APPS.SH_WEBADI_ITEM_UPLOAD;
![Page 2: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/2.jpg)
2- Create Pakedg In Database
CREATE OR REPLACE PACKAGE APPS.SH_webadi_item_upload_pkgIS l_segment1_len NUMBER; l_segment2_len NUMBER; PROCEDURE initialize_segment_len;
PROCEDURE cust_import_data_to_interface;
PROCEDURE cust_upload_data_to_staging ( p_segment1 VARCHAR2, p_segment2 VARCHAR2, p_organization_id VARCHAR2, p_organization_name VARCHAR2, p_description VARCHAR2, p_inventory_item_status_code VARCHAR2, p_template_name VARCHAR2, p_template_id VARCHAR2, p_primary_uom_code VARCHAR2, p_attribute1 VARCHAR2);END SH_webadi_item_upload_pkg;CREATE OR REPLACE PACKAGE BODY APPS.SH_webadi_item_upload_pkgIS PROCEDURE initialize_segment_len AS BEGIN BEGIN SELECT ffv.maximum_size INTO l_segment1_len FROM fnd_id_flex_segments_vl fifs, fnd_flex_value_sets ffv WHERE 1 = 1 AND fifs.flex_value_set_id = ffv.flex_value_set_id AND fifs.id_flex_code = 'MSTK' AND fifs.enabled_flag = 'Y' AND fifs.application_column_name = 'SEGMENT1'; EXCEPTION WHEN NO_DATA_FOUND THEN l_segment1_len := 0; END;
BEGIN
![Page 3: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/3.jpg)
SELECT ffv.maximum_size INTO l_segment2_len FROM fnd_id_flex_segments_vl fifs, fnd_flex_value_sets ffv WHERE 1 = 1 AND fifs.flex_value_set_id = ffv.flex_value_set_id AND fifs.id_flex_code = 'MSTK' AND fifs.enabled_flag = 'Y' AND fifs.application_column_name = 'SEGMENT2'; EXCEPTION WHEN NO_DATA_FOUND THEN l_segment2_len := 0; END; END;
PROCEDURE cust_import_data_to_interface IS CURSOR int_trans IS SELECT segment1, segment2, organization_id, ORGANIZATION_CODE, description, inventory_item_status_code, template_id, TEMPLATE_NAME, primary_uom_code, attribute1, transaction_type, process_flag, set_process_id FROM SH_webadi_item_upload;
BEGIN FOR r_int_trans IN int_trans LOOP INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE (segment1, segment2, organization_id, ORGANIZATION_CODE, description, inventory_item_status_code, template_id, TEMPLATE_NAME, primary_uom_code, attribute1,
![Page 4: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/4.jpg)
transaction_type, process_flag, set_process_id) VALUES (r_int_trans.segment1, r_int_trans.segment2, r_int_trans.organization_id, r_int_trans.ORGANIZATION_CODE, r_int_trans.description, r_int_trans.inventory_item_status_code, r_int_trans.template_id, r_int_trans.TEMPLATE_NAME, r_int_trans.primary_uom_code, r_int_trans.attribute1, r_int_trans.transaction_type, r_int_trans.process_flag, r_int_trans.set_process_id); DELETE FROM SH_webadi_item_upload cwi WHERE 1 = 1 AND NVL (cwi.SEGMENT1, 1) = NVL (r_int_trans.SEGMENT1, 1) AND NVL (cwi.SEGMENT2, 1) = NVL (r_int_trans.SEGMENT2, 1); END LOOP;
COMMIT; END cust_import_data_to_interface;
PROCEDURE cust_upload_data_to_staging ( p_segment1 VARCHAR2, p_segment2 VARCHAR2, p_organization_id VARCHAR2, p_organization_name VARCHAR2, p_description VARCHAR2, p_inventory_item_status_code VARCHAR2, p_template_name VARCHAR2, p_template_id VARCHAR2, p_primary_uom_code VARCHAR2, p_attribute1 VARCHAR2) IS l_error_message VARCHAR2 (3000); l_error_code VARCHAR2 (3000); l_organization_id NUMBER; l_template_id NUMBER; l_uom_validity VARCHAR2 (250); l_flag_validation VARCHAR2 (250); l_item_desc_len NUMBER; BEGIN
![Page 5: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/5.jpg)
---------------------------------------- -----Load Segment Sizes from setup------ ---------------------------------------- BEGIN initialize_segment_len; END;
---------------------------------------- ----------Select Org ID----------------- ---------------------------------------- IF p_organization_name IS NOT NULL THEN BEGIN SELECT hou.ORGANIZATION_ID INTO l_organization_id FROM hr_organization_units hou WHERE hou.NAME = p_organization_name; EXCEPTION WHEN NO_DATA_FOUND THEN l_error_message := l_error_message || ',' || 'Please enter correct organization'; l_error_code := 'E'; END; END IF;
IF p_organization_id IS NOT NULL THEN BEGIN SELECT hou.ORGANIZATION_ID INTO l_organization_id FROM hr_organization_units hou WHERE hou.ORGANIZATION_ID = p_organization_id; EXCEPTION WHEN NO_DATA_FOUND THEN l_error_message := l_error_message || ',' || 'Please enter correct organization'; l_error_code := 'E'; END; END IF;
----------------------------------------
![Page 6: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/6.jpg)
----------Select Template ID------------ ---------------------------------------- IF p_template_name IS NOT NULL THEN BEGIN SELECT mit.TEMPLATE_ID INTO l_template_id FROM MTL_ITEM_TEMPLATES mit WHERE mit.TEMPLATE_NAME = p_template_name; EXCEPTION WHEN NO_DATA_FOUND THEN l_error_message := l_error_message || ',' || 'Please enter correct template'; l_error_code := 'E'; END; END IF;
---------------------------------------- ------Validate Primary UOM Code--------- ---------------------------------------- IF p_primary_uom_code IS NOT NULL THEN BEGIN SELECT 'Valid' INTO l_uom_validity FROM MTL_UNITS_OF_MEASURE_VL uom WHERE uom.UOM_CODE = p_primary_uom_code; EXCEPTION WHEN NO_DATA_FOUND THEN l_error_message := l_error_message || ',' || 'Please enter the correct Primary/Secondary UOM Code'; l_error_code := 'E'; END; END IF;
---------------------------------------- -----Validate Description entered------- ---------------------------------------- BEGIN SELECT LENGTH (TRIM (p_description)) INTO l_item_desc_len FROM DUAL;
IF l_item_desc_len > 240 THEN
![Page 7: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/7.jpg)
l_error_message := l_error_message || ',' || 'Please ensure the description
LENGTH IS lesser THAN 240 CHARACTERS'; l_error_code := 'E'; END IF; END;
---------------------------------------- --------Validate Item Segments---------- ---------------------------------------- BEGIN IF l_segment1_len > 0 AND LENGTH (P_SEGMENT1) > l_segment1_len OR l_segment2_len > 0 AND LENGTH (P_SEGMENT2) > l_segment2_len THEN l_error_message := l_error_message || ',' || 'Please ensure that all Item SEGMENT lengths are as per setup.'; l_error_code := 'E'; END IF; END;
-------------------------------------------------------------------------------------------------------------- --------Condition to show error if any of the above validation picks up a data entry error-------------------- --------Condition to insert data into custom staging table if the data passes all above validations----------- IF l_error_code = 'E' THEN raise_application_error (-20101, l_error_message); ELSIF NVL (l_error_code, 'A') <> 'E' THEN INSERT INTO apps.SH_webadi_item_upload (segment1, segment2, organization_id, description, inventory_item_status_code, template_id, primary_uom_code, attribute1, process_flag, transaction_type, set_process_id, summary_flag, enabled_flag, interface_status)
![Page 8: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/8.jpg)
VALUES (TRIM (p_segment1), TRIM (p_segment2), l_organization_id, TRIM (p_description), TRIM (p_inventory_item_status_code), l_template_id, TRIM (p_primary_uom_code), TRIM (p_attribute1), 1, 'CREATE', 1, 'N', 'Y', 'NO'); ---------------------------------------------------------------------------------------------------- -----------Insert data into MTL_SYSTEM_ITEMS_INTERFACE after loading into staging table------------- ---------------------------------------------------------------------------------------------------- BEGIN cust_import_data_to_interface; END; END IF; END cust_upload_data_to_staging;END SH_webadi_item_upload_pkg;/3- Create Viwe
CREATE OR REPLACE VIEW XX_INV_ORG_VAS SELECT AA.MASTER_ORG MASTER_ORG_NAME, AA.ORGANIZATION_ID, NAME Inv_ORG_Name, AA.ORGANIZATION_CODE INV_ORG_Code FROM MTL_PARAMETERS_VIEW aa, HR_ORGANIZATION_UNITs org WHERE AA.ORGANIZATION_ID = org.ORGANIZATION_ID;4- Create Integrator
![Page 9: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/9.jpg)
Integrator Name: SH-Item Internal Name: SH_ITEM
Application Inventory
The ‘Display in Create Document Page’ checkbox will be checked and the following functions will be added by pressing the highlighted buttons above: 1. Desktop Integration - Create Document 2. Create Document
Desktop Integration - Create Document BNE_ADI_CREATE_DOCUMENTCreate Document BNE_CREATE_DOCUMENT
![Page 10: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/10.jpg)
After completing the steps above, press the ‘Next’ button. An interface will now be created as follows:
The setup will be as follows:
![Page 11: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/11.jpg)
Interface Name: SH-ITEM Interface Type: API-Procedure Package Name XX_webadi_item_upload_pkg Procedure/Function Name cust_upload_data_to_staging API Returns FND Message Code
After the entry above, press the ‘Apply’ button. The following screen will appear:
Click on the highlighted Interface select box to view the parameters of the API as follows:
![Page 12: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/12.jpg)
Click on the ‘Next’ button. The following screen will appear:
![Page 13: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/13.jpg)
Click on the highlighted ‘Create Content’ button to create the WebADI sheet template that will be used for data entry:
The setup will be as follows:
![Page 14: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/14.jpg)
Content Name: SH-Items Content Type: Text File Number of Columns 10
Click on the ‘Apply’ button. The content will be created as follows:
![Page 15: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/15.jpg)
You will now have to manually fill in all the column display names. These columns will be linked to all the parameters of the API at a later stage. All the columns will be named as per the 10 parameters of the API as follows: 1. SEGMENT1 2. SEGMENT2 3.Organization_ID4. ORGANIZATION_NAME 5. DESCRIPTION 6. INVENTORY_ITEM_STATUS_CODE 7. Template_ID8. TEMPLATE_NAME 9. PRIMARY_UOM_CODE 10. Attribute1
In Parameter List Add The follows:
Parameter List: Web ADI: Download "Text File" Parameters
![Page 16: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/16.jpg)
Choose ‘From Template’ and press ‘Create’. The following will appear. Ensure your uploader setup is as follows:
![Page 17: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/17.jpg)
![Page 18: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/18.jpg)
Press ‘Submit’. Your integrator setup is now complete.
![Page 19: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/19.jpg)
Define Layout Navigation: The following screen will appear:
Click on ‘Create’
![Page 20: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/20.jpg)
Provide the Layout name as follows:
Layout Name: Customized – Item Upload ADI – Layout Number of Headers: 1
![Page 21: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/21.jpg)
You will set the placement of all the fields as ‘Line’. Click ‘Next’. The following will appear.
![Page 22: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/22.jpg)
Click ‘Apply’. The Layout will be successfully created.
![Page 23: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/23.jpg)
![Page 24: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/24.jpg)
Define Mapping Navigation: Desktop Integration Define Mapping The following will appear: Click on ‘Define Mapping’
The following will appear:
![Page 25: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/25.jpg)
Click on ‘Define Mapping’
![Page 26: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/26.jpg)
Enter the required details as follows:
Mapping Name: SH_ITEMS_MAPMapping Key: SH_ITEMS_MAPNumber of Columns 10Click ‘Next’. The following will appear:
Select From LOV For Both Side To Map The Template Layout And Integrator
![Page 27: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/27.jpg)
You will now enter all the Source and Target columns on this page.
All 10 parameters of the API setup in the WebADI will be associated with the content columns of the WebADI sheet on this page.
After mapping is defined for all the columns, click on ‘Apply’.
After the completion of this step, you are now ready to upload items through WebADI.
![Page 28: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/28.jpg)
Defining LOV For Field Field Name CodeORGANIZATION_ID DECLARE
BEGIN BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV ( P_APPLICATION_ID => 401, P_INTERFACE_CODE => 'SH_ITEM_XINTG_INTF1', P_INTERFACE_COL_NAME => 'P_ORGANIZATION_ID', P_ID_COL => 'ORGANIZATION_ID', P_MEAN_COL => 'Inv_ORG_Name', P_DESC_COL => 'MASTER_ORG_NAME', P_TABLE => 'XX_INV_ORG_V', P_ADDL_W_C => '1=1', P_WINDOW_CAPTION => 'Organization List', P_WINDOW_WIDTH => 400, P_WINDOW_HEIGHT => 600, P_TABLE_BLOCK_SIZE => 50, P_TABLE_SORT_ORDER => 'Inv_ORG_Name', P_USER_ID => 1013415, P_POPLIST_FLAG => 'N'); COMMIT;END;
ORGANIZATION_NAME DECLAREBEGIN BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV ( P_APPLICATION_ID => 401, P_INTERFACE_CODE => 'SH_ITEM1_XINTG_INTF1', P_INTERFACE_COL_NAME => 'P_ORGANIZATION_NAME', P_ID_COL => 'Inv_ORG_Name', P_MEAN_COL => 'Inv_ORG_Name', P_DESC_COL => 'MASTER_ORG_NAME', P_TABLE => 'XX_INV_ORG_V', P_ADDL_W_C => 'ORGANIZATION_ID in (7872,7851)', P_WINDOW_CAPTION => 'Organization List', P_WINDOW_WIDTH => 400, P_WINDOW_HEIGHT => 600, P_TABLE_BLOCK_SIZE => 50, P_TABLE_SORT_ORDER => 'Inv_ORG_Name', P_USER_ID => 1013415, P_POPLIST_FLAG => 'N'); COMMIT;END;
TEMPLATE_NAME DECLAREBEGIN BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV (
![Page 29: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/29.jpg)
P_APPLICATION_ID => 401, P_INTERFACE_CODE => 'SH_ITEM_XINTG_INTF1', P_INTERFACE_COL_NAME => 'P_TEMPLATE_NAME', P_ID_COL => 'TEMPLATE_NAME', P_MEAN_COL => 'TEMPLATE_NAME', P_DESC_COL => 'DESCRIPTION', P_TABLE => 'MTL_ITEM_TEMPLATES_VL', P_ADDL_W_C => '1=1', P_WINDOW_CAPTION => 'Template Name', P_WINDOW_WIDTH => 400, P_WINDOW_HEIGHT => 600, P_TABLE_BLOCK_SIZE => 50, P_TABLE_SORT_ORDER => 'TEMPLATE_NAME', P_USER_ID => 1013415, P_POPLIST_FLAG => 'N'); COMMIT;END;
PRIMARY_UOM_CODE DECLAREBEGIN BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV ( P_APPLICATION_ID => 401, P_INTERFACE_CODE => 'SH_ITEM_XINTG_INTF1', --BNE_INTERFACE_COLS_B.INTERFACE_CODE P_INTERFACE_COL_NAME => 'P_PRIMARY_UOM_CODE', --BNE_INTERFACE_COLS_B.INTERFACE_COL_NAME P_ID_COL => 'UOM_CODE', P_MEAN_COL => 'UNIT_OF_MEASURE', P_DESC_COL => 'UOM_CLASS', P_TABLE => 'MTL_UNITS_OF_MEASURE_VL', P_ADDL_W_C => 'DISABLE_DATE is null', P_WINDOW_CAPTION => 'Primary UOM Name', P_WINDOW_WIDTH => 400, P_WINDOW_HEIGHT => 600, P_TABLE_BLOCK_SIZE => 50, P_TABLE_SORT_ORDER => 'UOM_CODE', P_USER_ID => 1013415, P_POPLIST_FLAG => 'N'); COMMIT;END;
![Page 30: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/30.jpg)
Create Function Linked To WebADIThe next step is to assign this function to a Menu of your choice: Navigation: System Administrator Application Function
![Page 31: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/31.jpg)
bne:page=BneCreateDoc&bne:language=US&bne:viewer=BNE:EXCEL2007&bne:reporting=N&bne:integrator=USER_NAME:SH_ITEM1&bne:noreview=Yes
![Page 32: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/32.jpg)
![Page 33: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/33.jpg)
BneApplicationService
![Page 34: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/34.jpg)
Navigate to the responsibility where the menu is assigned:
![Page 35: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/35.jpg)
![Page 36: Oracle Web Adi For upload item master](https://reader033.fdocuments.us/reader033/viewer/2022061413/587e4faa1a28abeb1a8b5c85/html5/thumbnails/36.jpg)
Try to Launch the WebADI from the custom function:
My Youtube
https://www.youtube.com/c/AhmedElshayeb2002?sub_confirmation=1