客户信息导入(改写程序)

客户导入程序:

--分步导入比较靠谱

--暂分成:1. 客户编号及名称导入

                   2. 客户地址及收货方 收单方导入

                   3. 客户层联系人及联系人电话导入

--客户编号及名称导入程序(即客户层信息导入)

--客户编号名称导入程序 HZ_PARTIES/ HZ_CUST_ACCOUNTS
DECLARE
  P_CUST_ACCOUNT_REC     HZ_CUST_ACCOUNT_V2PUB.CUST_ACCOUNT_REC_TYPE; --对应表:HZ_CUST_ACCOUNTS
  P_ORGANIZATION_REC     HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE; --对应表:HZ_PARTIES
  P_CUSTOMER_PROFILE_REC HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE; --对应表:从此VIEW AR_CUSTOMER_PROFILES_V 追溯至 HZ_CUSTOMER_PROFILES
  X_CUST_ACCOUNT_ID      NUMBER;
  X_ACCOUNT_NUMBER       VARCHAR2(2000);
  X_PARTY_ID             NUMBER;
  X_PARTY_NUMBER         VARCHAR2(2000);
  X_PROFILE_ID           NUMBER;
  X_RETURN_STATUS        VARCHAR2(2000);
  X_MSG_COUNT            NUMBER;
  X_MSG_DATA             VARCHAR2(2000);

BEGIN

  P_CUST_ACCOUNT_REC.ACCOUNT_NAME      := 'Fenner_01';
  P_CUST_ACCOUNT_REC.CREATED_BY_MODULE := 'TCAPI_EXAMPLE';

  P_CUSTOMER_PROFILE_REC.PROFILE_CLASS_ID := 1060; --取自AR_CUSTOMER_PROFILE_CLASSES_V OM模块-->设置-->客户-->客户配置文件分类

  P_ORGANIZATION_REC.ORGANIZATION_NAME := 'Fenner_01'; --Party_name
  P_ORGANIZATION_REC.CREATED_BY_MODULE := 'TCAPI_EXAMPLE';

  HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT('T'
                                           ,P_CUST_ACCOUNT_REC
                                           ,P_ORGANIZATION_REC
                                           ,P_CUSTOMER_PROFILE_REC
                                           ,'F'
                                           ,X_CUST_ACCOUNT_ID
                                           ,X_ACCOUNT_NUMBER
                                           ,X_PARTY_ID
                                           ,X_PARTY_NUMBER
                                           ,X_PROFILE_ID
                                           ,X_RETURN_STATUS
                                           ,X_MSG_COUNT
                                           ,X_MSG_DATA);

  DBMS_OUTPUT.PUT_LINE('***************************');
  DBMS_OUTPUT.PUT_LINE('Output information ....');
  DBMS_OUTPUT.PUT_LINE('x_cust_account_id: ' || X_CUST_ACCOUNT_ID);
  DBMS_OUTPUT.PUT_LINE('x_account_number: ' || X_ACCOUNT_NUMBER);
  DBMS_OUTPUT.PUT_LINE('x_party_id: ' || X_PARTY_ID);
  DBMS_OUTPUT.PUT_LINE('x_party_number: ' || X_PARTY_NUMBER);
  DBMS_OUTPUT.PUT_LINE('x_profile_id: ' || X_PROFILE_ID);
  DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
  DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
  DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
  DBMS_OUTPUT.PUT_LINE('***************************');

END;

--客户地址 收单方 收货方导入程序 

--客户地址及收货方收单方导入程序
/*BEGIN
  DBMS_APPLICATION_INFO.SET_CLIENT_INFO('236');
END;*/
DECLARE
  P_LOCATION_REC  HZ_LOCATION_V2PUB.LOCATION_REC_TYPE;
  X_LOCATION_ID   NUMBER;
  X_RETURN_STATUS VARCHAR2(2000);
  X_MSG_COUNT     NUMBER;
  X_MSG_DATA      VARCHAR2(2000);

  P_PARTY_SITE_REC    HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
  X_PARTY_SITE_ID     NUMBER;
  X_PARTY_SITE_NUMBER VARCHAR2(2000);

  P_CUST_ACCT_SITE_REC HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE;
  X_CUST_ACCT_SITE_ID  NUMBER;
  V_CUST_ACCOUNT_ID    NUMBER;

  P_CUST_SITE_USE_REC    HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_SITE_USE_REC_TYPE;
  P_CUSTOMER_PROFILE_REC HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
  X_SITE_USE_ID          NUMBER;
  V_BILL_TO_SITE_USE_ID  NUMBER;
  --客户信息
  --收单方与收货方地址一样,此时只需创建一个客户地址,然后先创建BILL_TO,再创建SHIP_TO,然后再把先前生成的BILL_TO,赋给SHIP_TO
  --收单方与收货方地址不一样,此时需先创建BILL_TO地址,然后只创建BILL_TO,接着再创建一个SHIP_TO地址,然后再把先前生成的BILL_TO,赋给SHIP_TO的BILL_TO
  CURSOR C1 IS
    SELECT (SELECT HP.PARTY_ID
              FROM HZ_PARTIES HP
             WHERE HP.PARTY_NAME = A.CUSTOMER_NAME) PARTY_ID
          ,A.*
      FROM MEWBACKUP.MEW_CUSTOMER_IMPORT_TMP A
     WHERE A.CUSTOMER_NUMBER = 'B80024010'
    --AND A.BILL_TO = A.SHIP_TO
    ;

BEGIN

  FOR R1 IN C1
  LOOP
 
    IF R1.SHIP_TO = R1.BILL_TO
    THEN
      --1 Location Create Begin
      P_LOCATION_REC.COUNTRY  := 'CN';
      P_LOCATION_REC.ADDRESS1 := R1.CUSTOMER_NAME;
      P_LOCATION_REC.ADDRESS2 := R1.SHIP_TO;
      P_LOCATION_REC.ADDRESS4 := R1.SHIP_TO;
      P_LOCATION_REC.CITY     := R1.CITY;
      --P_LOCATION_REC.POSTAL_CODE       := '94401';
      P_LOCATION_REC.PROVINCE          := R1.PROVINCE;
      P_LOCATION_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
      HZ_LOCATION_V2PUB.CREATE_LOCATION('T'
                                       ,P_LOCATION_REC
                                       ,X_LOCATION_ID
                                       ,X_RETURN_STATUS
                                       ,X_MSG_COUNT
                                       ,X_MSG_DATA);
   
      DBMS_OUTPUT.PUT_LINE('***************************');
      DBMS_OUTPUT.PUT_LINE('Output information ....');
      DBMS_OUTPUT.PUT_LINE('x_location_id: ' || X_LOCATION_ID);
      DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
      DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
      DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
      DBMS_OUTPUT.PUT_LINE('***************************');
      DBMS_OUTPUT.PUT_LINE(' ');
      --Location Create End
   
      --2 Party Site Create Begin 
      BEGIN
        P_PARTY_SITE_REC.PARTY_ID                 := R1.PARTY_ID; --<<value for party_id from step 2& GT;
        P_PARTY_SITE_REC.LOCATION_ID              := X_LOCATION_ID; --<<value for location_id from   STEP 3 >
        P_PARTY_SITE_REC.IDENTIFYING_ADDRESS_FLAG := 'Y';
        P_PARTY_SITE_REC.CREATED_BY_MODULE        := 'TCA_FORM_WRAPPER';
        HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE('T'
                                             ,P_PARTY_SITE_REC
                                             ,X_PARTY_SITE_ID
                                             ,X_PARTY_SITE_NUMBER
                                             ,X_RETURN_STATUS
                                             ,X_MSG_COUNT
                                             ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_party_site_id: ' || X_PARTY_SITE_ID);
        DBMS_OUTPUT.PUT_LINE('x_party_site_number: ' ||
                             X_PARTY_SITE_NUMBER);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
      --2 Party Site Create End
   
      --3 Cust Account Site ID Create Begin
      BEGIN
        V_CUST_ACCOUNT_ID := NULL;
        SELECT HCA.CUST_ACCOUNT_ID
          INTO V_CUST_ACCOUNT_ID
          FROM HZ_CUST_ACCOUNTS HCA
         WHERE HCA.PARTY_ID = R1.PARTY_ID;
     
        P_CUST_ACCT_SITE_REC.CUST_ACCOUNT_ID   := V_CUST_ACCOUNT_ID; --<<value for   CUST_ACCOUNT_ID YOU GET FROM STEP 2 >
        P_CUST_ACCT_SITE_REC.PARTY_SITE_ID     := X_PARTY_SITE_ID; --<<value for   PARTY_SITE_ID FROM STEP 4 >
        P_CUST_ACCT_SITE_REC.LANGUAGE          := 'ZHS';
        P_CUST_ACCT_SITE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE('T'
                                                        ,P_CUST_ACCT_SITE_REC
                                                        ,X_CUST_ACCT_SITE_ID
                                                        ,X_RETURN_STATUS
                                                        ,X_MSG_COUNT
                                                        ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_cust_acct_site_id: ' ||
                             X_CUST_ACCT_SITE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
      --3 Cust Account Site ID Create End
   
      --4 Cust account Site Use ID Create Begin 
      BEGIN
     
        P_CUST_SITE_USE_REC.CUST_ACCT_SITE_ID := X_CUST_ACCT_SITE_ID; --<<value for   CUST_ACCT_SITE_ID FROM STEP 5 >
        P_CUST_SITE_USE_REC.SITE_USE_CODE     := 'BILL_TO';
        P_CUST_SITE_USE_REC.LOCATION          := R1.BILL_TO;
        -- P_CUST_SITE_USE_REC.BILL_TO_SITE_USE_ID := V_BILL_TO_SITE_USE_ID;
        --  P_CUST_SITE_USE_REC.PAYMENT_TERM_ID     := 1081;
        P_CUST_SITE_USE_REC.TAX_CODE := 'VAT 17%';
        -- P_CUST_SITE_USE_REC.ORDER_TYPE_ID       := 1579;
        --  P_CUST_SITE_USE_REC.PRICE_LIST_ID       := 179738;
        --  P_CUST_SITE_USE_REC.PRIMARY_SALESREP_ID := 100007105;
        P_CUST_SITE_USE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE('T'
                                                       ,P_CUST_SITE_USE_REC
                                                       ,P_CUSTOMER_PROFILE_REC
                                                       ,''
                                                       ,''
                                                       ,X_SITE_USE_ID
                                                       ,X_RETURN_STATUS
                                                       ,X_MSG_COUNT
                                                       ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_site_use_id: ' || X_SITE_USE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
        V_BILL_TO_SITE_USE_ID := NULL;
     
        SELECT NVL(A.BILL_TO_SITE_USE_ID
                  ,A.SITE_USE_ID)
          INTO V_BILL_TO_SITE_USE_ID
          FROM HZ_CUST_SITE_USES_ALL A
         WHERE A.CUST_ACCT_SITE_ID IN
               (SELECT B.CUST_ACCT_SITE_ID
                  FROM HZ_CUST_ACCT_SITES_ALL B
                 WHERE B.CUST_ACCOUNT_ID = V_CUST_ACCOUNT_ID)
           AND A.LOCATION = R1.SHIP_TO
           AND A.SITE_USE_CODE = 'BILL_TO'
        --AND A.BILL_TO_SITE_USE_ID IS NOT NULL
        ;
     
        P_CUST_SITE_USE_REC.CUST_ACCT_SITE_ID   := X_CUST_ACCT_SITE_ID; --<<value for   CUST_ACCT_SITE_ID FROM STEP 5 >
        P_CUST_SITE_USE_REC.SITE_USE_CODE       := 'SHIP_TO';
        P_CUST_SITE_USE_REC.LOCATION            := R1.SHIP_TO;
        P_CUST_SITE_USE_REC.BILL_TO_SITE_USE_ID := V_BILL_TO_SITE_USE_ID;
        --  P_CUST_SITE_USE_REC.PAYMENT_TERM_ID     := 1081;
        P_CUST_SITE_USE_REC.TAX_CODE := 'VAT 17%';
        -- P_CUST_SITE_USE_REC.ORDER_TYPE_ID       := 1579;
        --  P_CUST_SITE_USE_REC.PRICE_LIST_ID       := 179738;
        --  P_CUST_SITE_USE_REC.PRIMARY_SALESREP_ID := 100007105;
        P_CUST_SITE_USE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE('T'
                                                       ,P_CUST_SITE_USE_REC
                                                       ,P_CUSTOMER_PROFILE_REC
                                                       ,''
                                                       ,''
                                                       ,X_SITE_USE_ID
                                                       ,X_RETURN_STATUS
                                                       ,X_MSG_COUNT
                                                       ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_site_use_id: ' || X_SITE_USE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
   
    ELSE
   
      --导入BILL_TO地址 
      P_LOCATION_REC.COUNTRY  := 'CN';
      P_LOCATION_REC.ADDRESS1 := R1.CUSTOMER_NAME;
      P_LOCATION_REC.ADDRESS2 := R1.BILL_TO;
      -- P_LOCATION_REC.ADDRESS4 := R1.ADDRESS4;
      --P_LOCATION_REC.POSTAL_CODE       := '94401';
      P_LOCATION_REC.PROVINCE          := R1.PROVINCE;
      P_LOCATION_REC.CITY              := R1.CITY;
      P_LOCATION_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
      HZ_LOCATION_V2PUB.CREATE_LOCATION('T'
                                       ,P_LOCATION_REC
                                       ,X_LOCATION_ID
                                       ,X_RETURN_STATUS
                                       ,X_MSG_COUNT
                                       ,X_MSG_DATA);
   
      DBMS_OUTPUT.PUT_LINE('***************************');
      DBMS_OUTPUT.PUT_LINE('Output information ....');
      DBMS_OUTPUT.PUT_LINE('x_location_id: ' || X_LOCATION_ID);
      DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
      DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
      DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
      DBMS_OUTPUT.PUT_LINE('***************************');
      DBMS_OUTPUT.PUT_LINE(' ');
   
      BEGIN
        P_PARTY_SITE_REC.PARTY_ID                 := R1.PARTY_ID; --<<value for party_id from step 2& GT;
        P_PARTY_SITE_REC.LOCATION_ID              := X_LOCATION_ID; --<<value for location_id from   STEP 3 >
        P_PARTY_SITE_REC.IDENTIFYING_ADDRESS_FLAG := 'Y';
        P_PARTY_SITE_REC.CREATED_BY_MODULE        := 'TCA_FORM_WRAPPER';
        HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE('T'
                                             ,P_PARTY_SITE_REC
                                             ,X_PARTY_SITE_ID
                                             ,X_PARTY_SITE_NUMBER
                                             ,X_RETURN_STATUS
                                             ,X_MSG_COUNT
                                             ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_party_site_id: ' || X_PARTY_SITE_ID);
        DBMS_OUTPUT.PUT_LINE('x_party_site_number: ' ||
                             X_PARTY_SITE_NUMBER);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
   
      BEGIN
        V_CUST_ACCOUNT_ID := NULL;
        SELECT HCA.CUST_ACCOUNT_ID
          INTO V_CUST_ACCOUNT_ID
          FROM HZ_CUST_ACCOUNTS HCA
         WHERE HCA.PARTY_ID = R1.PARTY_ID;
     
        P_CUST_ACCT_SITE_REC.CUST_ACCOUNT_ID   := V_CUST_ACCOUNT_ID; --<<value for   CUST_ACCOUNT_ID YOU GET FROM STEP 2 >
        P_CUST_ACCT_SITE_REC.PARTY_SITE_ID     := X_PARTY_SITE_ID; --<<value for   PARTY_SITE_ID FROM STEP 4 >
        P_CUST_ACCT_SITE_REC.LANGUAGE          := 'ZHS';
        P_CUST_ACCT_SITE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE('T'
                                                        ,P_CUST_ACCT_SITE_REC
                                                        ,X_CUST_ACCT_SITE_ID
                                                        ,X_RETURN_STATUS
                                                        ,X_MSG_COUNT
                                                        ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_cust_acct_site_id: ' ||
                             X_CUST_ACCT_SITE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
      --导入BILL_TO
      BEGIN
        P_CUST_SITE_USE_REC.CUST_ACCT_SITE_ID := X_CUST_ACCT_SITE_ID; --<<value for   CUST_ACCT_SITE_ID FROM STEP 5 >
        P_CUST_SITE_USE_REC.SITE_USE_CODE     := 'BILL_TO';
        P_CUST_SITE_USE_REC.LOCATION          := R1.BILL_TO;
        -- P_CUST_SITE_USE_REC.BILL_TO_SITE_USE_ID := V_BILL_TO_SITE_USE_ID;
        --  P_CUST_SITE_USE_REC.PAYMENT_TERM_ID     := 1081;
        P_CUST_SITE_USE_REC.TAX_CODE := 'VAT 17%';
        -- P_CUST_SITE_USE_REC.ORDER_TYPE_ID       := 1579;
        --  P_CUST_SITE_USE_REC.PRICE_LIST_ID       := 179738;
        --  P_CUST_SITE_USE_REC.PRIMARY_SALESREP_ID := 100007105;
        P_CUST_SITE_USE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE('T'
                                                       ,P_CUST_SITE_USE_REC
                                                       ,P_CUSTOMER_PROFILE_REC
                                                       ,''
                                                       ,''
                                                       ,X_SITE_USE_ID
                                                       ,X_RETURN_STATUS
                                                       ,X_MSG_COUNT
                                                       ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_site_use_id: ' || X_SITE_USE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
        --导入SHIP_TO地址   
        P_LOCATION_REC.COUNTRY  := 'CN';
        P_LOCATION_REC.ADDRESS1 := R1.CUSTOMER_NAME;
        P_LOCATION_REC.ADDRESS2 := R1.SHIP_TO;
        P_LOCATION_REC.ADDRESS4 := R1.SHIP_TO;
        --P_LOCATION_REC.POSTAL_CODE       := '94401';
        P_LOCATION_REC.PROVINCE          := R1.PROVINCE;
        P_LOCATION_REC.CITY              := R1.CITY;
        P_LOCATION_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_LOCATION_V2PUB.CREATE_LOCATION('T'
                                         ,P_LOCATION_REC
                                         ,X_LOCATION_ID
                                         ,X_RETURN_STATUS
                                         ,X_MSG_COUNT
                                         ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_location_id: ' || X_LOCATION_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE(' ');
     
        BEGIN
          P_PARTY_SITE_REC.PARTY_ID                 := R1.PARTY_ID; --<<value for party_id from step 2& GT;
          P_PARTY_SITE_REC.LOCATION_ID              := X_LOCATION_ID; --<<value for location_id from   STEP 3 >
          P_PARTY_SITE_REC.IDENTIFYING_ADDRESS_FLAG := 'Y';
          P_PARTY_SITE_REC.CREATED_BY_MODULE        := 'TCA_FORM_WRAPPER';
          HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE('T'
                                               ,P_PARTY_SITE_REC
                                               ,X_PARTY_SITE_ID
                                               ,X_PARTY_SITE_NUMBER
                                               ,X_RETURN_STATUS
                                               ,X_MSG_COUNT
                                               ,X_MSG_DATA);
       
          DBMS_OUTPUT.PUT_LINE('***************************');
          DBMS_OUTPUT.PUT_LINE('Output information ....');
          DBMS_OUTPUT.PUT_LINE('x_party_site_id: ' || X_PARTY_SITE_ID);
          DBMS_OUTPUT.PUT_LINE('x_party_site_number: ' ||
                               X_PARTY_SITE_NUMBER);
          DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
          DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
          DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
          DBMS_OUTPUT.PUT_LINE('***************************');
       
        END;
     
        BEGIN
          V_CUST_ACCOUNT_ID := NULL;
          SELECT HCA.CUST_ACCOUNT_ID
            INTO V_CUST_ACCOUNT_ID
            FROM HZ_CUST_ACCOUNTS HCA
           WHERE HCA.PARTY_ID = R1.PARTY_ID;
       
          P_CUST_ACCT_SITE_REC.CUST_ACCOUNT_ID   := V_CUST_ACCOUNT_ID; --<<value for   CUST_ACCOUNT_ID YOU GET FROM STEP 2 >
          P_CUST_ACCT_SITE_REC.PARTY_SITE_ID     := X_PARTY_SITE_ID; --<<value for   PARTY_SITE_ID FROM STEP 4 >
          P_CUST_ACCT_SITE_REC.LANGUAGE          := 'ZHS';
          P_CUST_ACCT_SITE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
          HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE('T'
                                                          ,P_CUST_ACCT_SITE_REC
                                                          ,X_CUST_ACCT_SITE_ID
                                                          ,X_RETURN_STATUS
                                                          ,X_MSG_COUNT
                                                          ,X_MSG_DATA);
       
          DBMS_OUTPUT.PUT_LINE('***************************');
          DBMS_OUTPUT.PUT_LINE('Output information ....');
          DBMS_OUTPUT.PUT_LINE('x_cust_acct_site_id: ' ||
                               X_CUST_ACCT_SITE_ID);
          DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
          DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
          DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
          DBMS_OUTPUT.PUT_LINE('***************************');
       
        END;
     
        --导入SHIP_TO
        V_BILL_TO_SITE_USE_ID := NULL;
        SELECT NVL(A.BILL_TO_SITE_USE_ID
                  ,A.SITE_USE_ID)
          INTO V_BILL_TO_SITE_USE_ID
          FROM HZ_CUST_SITE_USES_ALL A
         WHERE A.CUST_ACCT_SITE_ID IN
               (SELECT B.CUST_ACCT_SITE_ID
                  FROM HZ_CUST_ACCT_SITES_ALL B
                 WHERE B.CUST_ACCOUNT_ID = V_CUST_ACCOUNT_ID)
           AND A.LOCATION = R1.SHIP_TO
           AND A.SITE_USE_CODE = 'BILL_TO'
        --AND A.BILL_TO_SITE_USE_ID IS NOT NULL
        ;
     
        P_CUST_SITE_USE_REC.CUST_ACCT_SITE_ID   := X_CUST_ACCT_SITE_ID; --<<value for   CUST_ACCT_SITE_ID FROM STEP 5 >
        P_CUST_SITE_USE_REC.SITE_USE_CODE       := 'SHIP_TO';
        P_CUST_SITE_USE_REC.LOCATION            := R1.SHIP_TO;
        P_CUST_SITE_USE_REC.BILL_TO_SITE_USE_ID := V_BILL_TO_SITE_USE_ID;
        --  P_CUST_SITE_USE_REC.PAYMENT_TERM_ID     := 1081;
        P_CUST_SITE_USE_REC.TAX_CODE := 'VAT 17%';
        -- P_CUST_SITE_USE_REC.ORDER_TYPE_ID       := 1579;
        --  P_CUST_SITE_USE_REC.PRICE_LIST_ID       := 179738;
        --  P_CUST_SITE_USE_REC.PRIMARY_SALESREP_ID := 100007105;
        P_CUST_SITE_USE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
        HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE('T'
                                                       ,P_CUST_SITE_USE_REC
                                                       ,P_CUSTOMER_PROFILE_REC
                                                       ,''
                                                       ,''
                                                       ,X_SITE_USE_ID
                                                       ,X_RETURN_STATUS
                                                       ,X_MSG_COUNT
                                                       ,X_MSG_DATA);
     
        DBMS_OUTPUT.PUT_LINE('***************************');
        DBMS_OUTPUT.PUT_LINE('Output information ....');
        DBMS_OUTPUT.PUT_LINE('x_site_use_id: ' || X_SITE_USE_ID);
        DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
        DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_COUNT);
        DBMS_OUTPUT.PUT_LINE('***************************');
     
      END;
   
    END IF;
 
  END LOOP;

END;

 

--3. 客户层联系人和联系人电话导入程序

--联系人电话导入程序

/*BEGIN
  DBMS_APPLICATION_INFO.SET_CLIENT_INFO('236');
END;*/
--7
DECLARE
  P_CREATE_PERSON_REC HZ_PARTY_V2PUB.PERSON_REC_TYPE;
  X_PARTY_ID          NUMBER /*:= 97293*/
  ;
  X_PARTY_NUMBER      VARCHAR2(2000);
  X_PROFILE_ID        NUMBER;
  X_RETURN_STATUS     VARCHAR2(2000);
  X_MSG_COUNT         NUMBER;
  X_MSG_DATA          VARCHAR2(2000);

  P_ORG_CONTACT_REC HZ_PARTY_CONTACT_V2PUB.ORG_CONTACT_REC_TYPE;
  X_ORG_CONTACT_ID  NUMBER;
  X_PARTY_REL_ID    NUMBER;

  P_CR_CUST_ACC_ROLE_REC HZ_CUST_ACCOUNT_ROLE_V2PUB.CUST_ACCOUNT_ROLE_REC_TYPE;
  X_CUST_ACCOUNT_ROLE_ID NUMBER;

  P_CONTACT_POINT_REC HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
  P_PHONE_REC         HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
  P_EDI_REC_TYPE      HZ_CONTACT_POINT_V2PUB.EDI_REC_TYPE;
  P_EMAIL_REC_TYPE    HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
  P_TELEX_REC_TYPE    HZ_CONTACT_POINT_V2PUB.TELEX_REC_TYPE;
  P_WEB_REC_TYPE      HZ_CONTACT_POINT_V2PUB.WEB_REC_TYPE;
  X_CONTACT_POINT_ID  NUMBER;

  CURSOR C1 IS
    SELECT (SELECT HP.PARTY_ID
              FROM HZ_PARTIES HP
             WHERE HP.PARTY_NAME = A.CUSTOMER_NAME) PARTY_ID
          ,(SELECT CUSTOMER_ID
              FROM AR_CUSTOMERS AC
             WHERE AC.CUSTOMER_NAME = A.CUSTOMER_NAME) CUSTOMBER_ACCOUNT_ID
          ,A.*
      FROM MEWBACKUP.MEW_CUSTOMER_IMPORT_TMP A
     WHERE A.CUSTOMER_NUMBER = 'B80024010';
BEGIN
  FOR R1 IN C1
  LOOP
    --7
    P_CREATE_PERSON_REC.PERSON_LAST_NAME  := NVL(R1.CONTACTOR
                                                ,'无');
    P_CREATE_PERSON_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
 
    HZ_PARTY_V2PUB.CREATE_PERSON('T'
                                ,P_CREATE_PERSON_REC
                                ,X_PARTY_ID
                                ,X_PARTY_NUMBER
                                ,X_PROFILE_ID
                                ,X_RETURN_STATUS
                                ,X_MSG_COUNT
                                ,X_MSG_DATA);
 
    DBMS_OUTPUT.PUT_LINE('***************************');
    DBMS_OUTPUT.PUT_LINE('Output information ....');
    DBMS_OUTPUT.PUT_LINE('x_party_id: ' || X_PARTY_ID);
    DBMS_OUTPUT.PUT_LINE('x_party_number: ' || X_PARTY_NUMBER);
    DBMS_OUTPUT.PUT_LINE('x_profile_id: ' || X_PROFILE_ID);
    DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
    DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
    DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
    DBMS_OUTPUT.PUT_LINE('***************************');
    --8
    P_ORG_CONTACT_REC.CREATED_BY_MODULE                := 'TCA_FORM_WRAPPER';
    P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_ID         := X_PARTY_ID; --<<value for party_id from step 7>
    P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_TYPE       := 'PERSON';
    P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_TABLE_NAME := 'HZ_PARTIES';
    P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_ID          := R1.PARTY_ID; --<<value for party_id from step 2>
    P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_TYPE        := 'ORGANIZATION';
    P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_TABLE_NAME  := 'HZ_PARTIES';
    P_ORG_CONTACT_REC.PARTY_REL_REC.RELATIONSHIP_CODE  := 'CONTACT_OF';
    P_ORG_CONTACT_REC.PARTY_REL_REC.RELATIONSHIP_TYPE  := 'CONTACT';
    P_ORG_CONTACT_REC.PARTY_REL_REC.START_DATE         := SYSDATE;
    HZ_PARTY_CONTACT_V2PUB.CREATE_ORG_CONTACT('T'
                                             ,P_ORG_CONTACT_REC
                                             ,X_ORG_CONTACT_ID
                                             ,X_PARTY_REL_ID
                                             ,X_PARTY_ID
                                             ,X_PARTY_NUMBER
                                             ,X_RETURN_STATUS
                                             ,X_MSG_COUNT
                                             ,X_MSG_DATA);
 
    DBMS_OUTPUT.PUT_LINE('***************************');
    DBMS_OUTPUT.PUT_LINE('Output information ....');
    DBMS_OUTPUT.PUT_LINE('x_org_contact_id: ' || X_ORG_CONTACT_ID);
    DBMS_OUTPUT.PUT_LINE('x_party_rel_id: ' || X_PARTY_REL_ID);
    DBMS_OUTPUT.PUT_LINE('x_party_id: ' || X_PARTY_ID);
    DBMS_OUTPUT.PUT_LINE('x_party_number: ' || X_PARTY_NUMBER);
    DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
    DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
    DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
    DBMS_OUTPUT.PUT_LINE('***************************');
    --9
    P_CR_CUST_ACC_ROLE_REC.PARTY_ID          := X_PARTY_ID; --<<value for party_id from step 8>
    P_CR_CUST_ACC_ROLE_REC.CUST_ACCOUNT_ID   := R1.CUSTOMBER_ACCOUNT_ID; --<<value for cust_account_id from step 2>
    P_CR_CUST_ACC_ROLE_REC.PRIMARY_FLAG      := 'Y';
    P_CR_CUST_ACC_ROLE_REC.ROLE_TYPE         := 'CONTACT';
    P_CR_CUST_ACC_ROLE_REC.CREATED_BY_MODULE := 'TCA_FORM_WRAPPER';
 
    HZ_CUST_ACCOUNT_ROLE_V2PUB.CREATE_CUST_ACCOUNT_ROLE('T'
                                                       ,P_CR_CUST_ACC_ROLE_REC
                                                       ,X_CUST_ACCOUNT_ROLE_ID
                                                       ,X_RETURN_STATUS
                                                       ,X_MSG_COUNT
                                                       ,X_MSG_DATA);
 
    DBMS_OUTPUT.PUT_LINE('***************************');
    DBMS_OUTPUT.PUT_LINE('Output information ....');
    DBMS_OUTPUT.PUT_LINE('x_cust_account_role_id: ' ||
                         X_CUST_ACCOUNT_ROLE_ID);
    DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
    DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
    DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
    DBMS_OUTPUT.PUT_LINE('***************************');
    --10电话
    P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'PHONE';
    P_CONTACT_POINT_REC.OWNER_TABLE_NAME   := 'HZ_PARTIES';
    P_CONTACT_POINT_REC.OWNER_TABLE_ID     := X_PARTY_ID; --<value for party_id from step 8>
    P_CONTACT_POINT_REC.CREATED_BY_MODULE  := 'TCA_FORM_WRAPPER';
    P_PHONE_REC.PHONE_NUMBER               := R1.PHONE;
    P_PHONE_REC.PHONE_LINE_TYPE            := 'GEN';
 
    HZ_CONTACT_POINT_V2PUB.CREATE_CONTACT_POINT('T'
                                               ,P_CONTACT_POINT_REC
                                               ,P_EDI_REC_TYPE
                                               ,P_EMAIL_REC_TYPE
                                               ,P_PHONE_REC
                                               ,P_TELEX_REC_TYPE
                                               ,P_WEB_REC_TYPE
                                               ,X_CONTACT_POINT_ID
                                               ,X_RETURN_STATUS
                                               ,X_MSG_COUNT
                                               ,X_MSG_DATA);
 
    DBMS_OUTPUT.PUT_LINE('***************************');
    DBMS_OUTPUT.PUT_LINE('Output information ....');
    DBMS_OUTPUT.PUT_LINE('x_contact_point_id: ' || X_CONTACT_POINT_ID);
    DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
    DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
    DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
    DBMS_OUTPUT.PUT_LINE('***************************');
 
    P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'PHONE';
    P_CONTACT_POINT_REC.OWNER_TABLE_NAME   := 'HZ_PARTIES';
    P_CONTACT_POINT_REC.OWNER_TABLE_ID     := X_PARTY_ID; --<value for party_id from step 8>
    P_CONTACT_POINT_REC.CREATED_BY_MODULE  := 'TCA_FORM_WRAPPER';
    P_PHONE_REC.PHONE_NUMBER               := R1.FAX;
    P_PHONE_REC.PHONE_LINE_TYPE            := 'FAX';
    --11传真
    HZ_CONTACT_POINT_V2PUB.CREATE_CONTACT_POINT('T'
                                               ,P_CONTACT_POINT_REC
                                               ,P_EDI_REC_TYPE
                                               ,P_EMAIL_REC_TYPE
                                               ,P_PHONE_REC
                                               ,P_TELEX_REC_TYPE
                                               ,P_WEB_REC_TYPE
                                               ,X_CONTACT_POINT_ID
                                               ,X_RETURN_STATUS
                                               ,X_MSG_COUNT
                                               ,X_MSG_DATA);
 
    DBMS_OUTPUT.PUT_LINE('***************************');
    DBMS_OUTPUT.PUT_LINE('Output information ....');
    DBMS_OUTPUT.PUT_LINE('x_contact_point_id: ' || X_CONTACT_POINT_ID);
    DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
    DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
    DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
    DBMS_OUTPUT.PUT_LINE('***************************');
 
  END LOOP;

END;

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值