Solved

Simplified part creation process

  • 4 November 2022
  • 1 reply
  • 467 views

Userlevel 5
Badge +10

We are looking for an alternative to create parts. (APPS 10, Upd 11)

I like the New Part Assistant wizard, but it does not cover all our needs.

Does anyone have experience with part creation using a custom page or using an own wizard (not sure, if this is possible at all).

Our target is to use templates per Divisions and ask the user to enter only the required and relevant data. 

This should be as simple as possible, as the users who need to create a customer order and need a sales part for this, are not aware of all needs of part data.

I also know about the option to create parts using assortments, but for certain fields the default values are not generic enough for our needs.

Thank you for your feedback!

Regards Martina

icon

Best answer by Kanishka Dilana 4 November 2022, 19:52

View original

1 reply

Userlevel 6
Badge +15

Hi @ALHAGMO,

If relevant Inventory Part(s) are already created in the system, you can create Sales Parts using a Custom RMB executed upon Custom Page as follows (As this involves direct API Calls, the user may need APPOWNER Access).

I have used something like in the Past. You can Hardcode/predefine almost all the data and let user select only New Sales Part Number and the Site for which he wish to create the Sales Part for,

  1. Create Custom Page to let the user enter the necessary Data,
  1. Use a Custom Menu to Create Sales Part,
  1.  The Content of The Custom Menu I’m using,
  1.  The PLSQL Block used above (You may change the Default values as appropriate),

DECLARE

info_ VARCHAR2(2000):= '';
objid_ VARCHAR2(2000):= '';
objversion_ VARCHAR2(2000):= '';
attr_ VARCHAR2(32000):= '';
sale_attr_ VARCHAR2(2000);

part_no_  VARCHAR2(2000) := &CF$_DW_CATALOG_NO;
contract_ VARCHAR2(2000);

company_              VARCHAR2(2000);
description_          VARCHAR2(2000):= 'tst sls inv prt';
tax_code_ VARCHAR2(2000) := 0;
taxable_db_ VARCHAR2(2000) := Fnd_Boolean_API.db_true;
sourcing_option_ VARCHAR2(2000) := 'PRIMARYSUPPTRANSIT';
list_price_            NUMBER  := 10;
price_conv_factor_     NUMBER  := 1;
db_true_   CONSTANT VARCHAR2(4)  := Fnd_Boolean_API.db_true;
db_false_  CONSTANT VARCHAR2(5)  := Fnd_Boolean_API.db_false;

CURSOR get_recs IS
SELECT CF$_DW_CONTRACT_DB
FROM DW_SALES_PART_CLV
WHERE CF$_DW_CATALOG_NO = part_no_;
     
BEGIN

FOR rec_ IN get_recs LOOP

contract_ := substr(rec_.CF$_DW_CONTRACT_DB,2,instr(rec_.CF$_DW_CONTRACT_DB,'^',1,2)-2);
company_ := Site_API.Get_Company(contract_);
    
Client_SYS.Clear_Attr(sale_attr_);
Client_SYS.Add_To_Attr('PART_NO', part_no_, sale_attr_);
Client_SYS.Add_To_Attr('CATALOG_NO', part_no_, sale_attr_);
Client_SYS.Add_To_Attr('CATALOG_DESC', description_, sale_attr_);
Client_SYS.Add_To_Attr('CATALOG_GROUP', '*', sale_attr_);
Client_SYS.Add_To_Attr('SALES_PRICE_GROUP_ID', '*', sale_attr_);
Client_SYS.Add_To_Attr('SALES_UNIT_MEAS', 'pcs', sale_attr_);
Client_SYS.Add_To_Attr('PRICE_CONV_FACTOR', price_conv_factor_, sale_attr_);
Client_SYS.Add_To_Attr('PRICE_UNIT_MEAS', 'pcs', sale_attr_);
Client_SYS.Add_To_Attr('CATALOG_TYPE_DB', 'INV', sale_attr_);
Client_SYS.Add_To_Attr('LIST_PRICE', list_price_, sale_attr_);
Client_SYS.Add_To_Attr('QUICK_REGISTERED_PART_DB', 'TRUE', sale_attr_);
Client_SYS.Add_To_Attr('ACTIVEIND_DB', 'Y', sale_attr_);
Client_SYS.Add_To_Attr('CONV_FACTOR', 1, sale_attr_);
Client_SYS.Add_To_Attr('INVERTED_CONV_FACTOR', 1, sale_attr_);
Client_SYS.Add_To_Attr('PRICE_CONV_FACTOR', 1, sale_attr_);
Client_SYS.Add_To_Attr('CLOSE_TOLERANCE', 0, sale_attr_);
Client_SYS.Add_To_Attr('QUICK_REGISTERED_PART_DB', db_false_, sale_attr_);
Client_SYS.Add_To_Attr('ALLOW_PARTIAL_PKG_DELIV_DB', db_true_, sale_attr_);
Client_SYS.Add_To_Attr('SALES_TYPE', Sales_Type_API.Decode(Sales_Type_API.DB_SALES_ONLY), sale_attr_);
Client_SYS.Add_To_Attr('LIST_PRICE', list_price_, sale_attr_);
Client_SYS.Add_To_Attr('LIST_PRICE_INCL_TAX', 0, sale_attr_);   
Client_SYS.Add_To_Attr('RENTAL_LIST_PRICE', 0, sale_attr_);
Client_SYS.Add_To_Attr('RENTAL_LIST_PRICE_INCL_TAX', 0, sale_attr_);
Client_SYS.Add_To_Attr('NON_INV_PART_TYPE', Non_Inventory_Part_Type_API.Decode('SERVICE'), sale_attr_);
Client_SYS.Add_To_Attr('COST', 0, sale_attr_);
Client_SYS.Add_To_Attr('PRIMARY_CATALOG_DB', db_false_, sale_attr_);      
Client_SYS.Add_To_Attr('TAX_CODE', tax_code_, sale_attr_);
Client_SYS.Add_To_Attr('TAXABLE_DB', taxable_db_, sale_attr_);
Client_SYS.Add_To_Attr('CREATE_SM_OBJECT_OPTION_DB', 'DONOTCREATESMOBJECT', sale_attr_);
Client_SYS.Add_To_Attr('SOURCING_OPTION', Sourcing_Option_API.Decode(sourcing_option_), sale_attr_);
Client_SYS.Add_To_Attr('EXPORT_TO_EXTERNAL_APP_DB', db_false_, sale_attr_);
Client_SYS.Add_To_Attr('CONTRACT', contract_, sale_attr_);
Client_SYS.Add_To_Attr('USE_PRICE_INCL_TAX_DB', Site_Discom_Info_API.Get_Use_Price_Incl_Tax_Ord_Db(contract_), sale_attr_);
Client_SYS.Add_To_Attr('COMPANY', company_, sale_attr_);

Sales_Part_API.new__(info_, objid_, objversion_, sale_attr_, 'DO');
COMMIT;

END LOOP;
END;
 

Reply