機械翻訳について

レシピをインストールする前に

Oracle Integrationを使用してこれらの外部システムに正常に接続し、サプライヤ・レコードを非同期的にインポートするには、Oracle Autonomous Transaction ProcessingおよびOracle ERP Cloudインスタンスで次の構成タスクを実行する必要があります。

Oracle ERP Cloudの構成

Oracle IntegrationからOracle ERP Cloudインスタンスにアクセスするには、Oracle ERP Cloudに別のユーザー・アカウントが必要です。

「管理者」としてOracle ERP Cloudインスタンスにログインし、次のタスクを実行します。
  1. Oracle Integrationのユーザー・アカウントを作成します。 アカウントに設定したユーザー名とパスワードを書き留めます。 このユーザー・アカウントの資格証明を使用して、Oracle IntegrationからOracle ERP Cloudに接続します。
  2. 次のロールをユーザー・アカウントに割り当てます。 これらのロールの詳細は、「Oracle Integration 3でのOracle ERP Cloudアダプタの使用」「統合ユーザーへの必要なロールの割当て」を参照してください。
    • Integration Specialist
    • Oracle ERP Cloud-specific data access to the integration user

Oracle Autonomous Transaction Processingの構成

Oracle Autonomous Transaction Processingデータベース・インスタンスに管理者としてログインし、次のタスクを実行します。
  1. 一般的な構成タスクを実行します。 「Oracle Integration 3でのOracle Autonomous Transaction Processingアダプタの使用」「接続を作成するための前提条件」を参照してください。
  2. 必要なオブジェクトを作成します。

    必要なオブジェクトを作成するには、次のスクリプトを実行します:

    CREATE OR REPLACE EDITIONABLE TYPE SUPPLIER_RECORD AS OBJECT (
    Supplier VARCHAR2(200),
    SupplierNumber VARCHAR2(200),
    TaxOrganizationTypeCode VARCHAR2(200),
    TaxOrganizationType VARCHAR2(200),
    SupplierTypeCode VARCHAR2(200),
    SupplierStatus VARCHAR2(200),
    BusinessRelationshipCode VARCHAR2(200),
    BusinessRelationship VARCHAR2(200),
    TaxRegistrationCountry VARCHAR2(200),
    TaxpayerCountryCode VARCHAR2(200),
    TaxpayerCountry VARCHAR2(200),
    TaxpayerId VARCHAR2(200)
    );
    /
    CREATE OR REPLACE EDITIONABLE TYPE SUPPLIER_TABLE IS TABLE OF supplier_record;
    /
    CREATE SEQUENCE SUPPLIERS_SEQ MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT
    BY 1 START WITH 6537 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE GLOBAL ;
    CREATE TABLE XX_SUPPLIERS
    ( "ID" NUMBER,
    "INSTANCE_ID" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "STATUS" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "SUPPLIER" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "SUPPLIER_NUMBER" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAX_ORGANIZATION_TYPE_CODE" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAX_ORGANIZATION_TYPE" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "SUPPLIER_TYPE_CODE" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "SUPPLIER_STATUS" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "BUSINESS_RELATIONSHIP_CODE" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "BUSINESS_RELATIONSHIP" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAX_REGISTRATION_COUNTRY" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAXPAYER_COUNTRY_CODE" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAXPAYER_COUNTRY" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "TAXPAYER_ID" VARCHAR2(200 BYTE) COLLATE "USING_NLS_COMP",
    "CREATION_DATE" TIMESTAMP (6) DEFAULT SYSDATE,
    "UPDATION_DATE" TIMESTAMP (6) DEFAULT SYSDATE
    ) DEFAULT COLLATION "USING_NLS_COMP" ;
    CREATE UNIQUE INDEX XX_SUPPLIERS_PK ON XX_SUPPLIERS ("ID")
    ;
    ALTER TABLE XX_SUPPLIERS ADD CONSTRAINT "XX_SUPPLIERS_PK" PRIMARY KEY ("ID")
    USING INDEX XX_SUPPLIERS_PK ENABLE;
    CREATE OR REPLACE EDITIONABLE TRIGGER XX_SUPPLIERS_TRIGGER
    BEFORE INSERT ON XX_SUPPLIERS
    FOR EACH ROW
    WHEN (new.ID IS NULL) BEGIN
    :new.ID := SUPPLIERS_SEQ.NEXTVAL;
    END;
    /
    ALTER TRIGGER XX_SUPPLIERS_TRIGGER ENABLE;
    CREATE OR REPLACE EDITIONABLE TRIGGER XX_SUPPLIERS_UPDATE_DATE BEFORE UPDATE ON
    XX_SUPPLIERS
    FOR EACH ROW
    BEGIN
    :NEW.UPDATION_DATE := SYSDATE;
    END;
    /
    ALTER TRIGGER XX_SUPPLIERS_UPDATE_DATE ENABLE;
    /
    CREATE OR REPLACE EDITIONABLE PACKAGE "ADMIN"."XX_WRAPPER_SUPPLIERS_PKG" AS
    PROCEDURE RUN_SCHEDULER_JOB (
    P_SUPPLIER_RECORD IN SUPPLIER_TABLE,
    P_INSTANCEID IN VARCHAR2
    );
    PROCEDURE PROCESS_SUPPLIERS (
    P_INSTANCEID IN VARCHAR2
    );
    PROCEDURE GET_SUPPLIERS_PAGINATION_PROC (
    I_PAGE IN NUMBER,
    I_LIMIT IN NUMBER,
    I_PAGE_SIZE OUT NUMBER,
    P_DATA OUT SYS_REFCURSOR
    );
    END XX_WRAPPER_SUPPLIERS_PKG;
    /
    CREATE OR REPLACE EDITIONABLE PACKAGE BODY "ADMIN"."XX_WRAPPER_SUPPLIERS_PKG" AS
    PROCEDURE RUN_SCHEDULER_JOB (
    P_SUPPLIER_RECORD IN SUPPLIER_TABLE,
    P_INSTANCEID IN VARCHAR2
    ) IS
    L_JOB_ACTION VARCHAR2(1000);
    BEGIN
    -- DBMS_SESSION.sleep(360);
    FOR I IN 1..P_SUPPLIER_RECORD.COUNT LOOP
    INSERT INTO XX_SUPPLIERS (
    INSTANCE_ID,
    STATUS,
    SUPPLIER,
    SUPPLIER_NUMBER,
    TAX_ORGANIZATION_TYPE_CODE,
    TAX_ORGANIZATION_TYPE,
    SUPPLIER_TYPE_CODE,
    SUPPLIER_STATUS,
    BUSINESS_RELATIONSHIP_CODE,
    BUSINESS_RELATIONSHIP,
    TAX_REGISTRATION_COUNTRY,
    TAXPAYER_COUNTRY_CODE,
    TAXPAYER_COUNTRY,
    TAXPAYER_ID
    ) VALUES ( P_INSTANCEID,
    'IN-PROGRESS',
    P_SUPPLIER_RECORD(I).SUPPLIER,
    P_SUPPLIER_RECORD(I).SUPPLIERNUMBER,
    P_SUPPLIER_RECORD(I).TAXORGANIZATIONTYPECODE,
    P_SUPPLIER_RECORD(I).TAXORGANIZATIONTYPE,
    P_SUPPLIER_RECORD(I).SUPPLIERTYPECODE,
    P_SUPPLIER_RECORD(I).SUPPLIERSTATUS,
    P_SUPPLIER_RECORD(I).BUSINESSRELATIONSHIPCODE,
    P_SUPPLIER_RECORD(I).BUSINESSRELATIONSHIP,
    P_SUPPLIER_RECORD(I).TAXREGISTRATIONCOUNTRY,
    P_SUPPLIER_RECORD(I).TAXPAYERCOUNTRYCODE,
    P_SUPPLIER_RECORD(I).TAXPAYERCOUNTRY,
    P_SUPPLIER_RECORD(I).TAXPAYERID );
    END LOOP;
    L_JOB_ACTION := 'DECLARE
    BEGIN
    XX_WRAPPER_SUPPLIERS_PKG.PROCESS_SUPPLIERS('''
    || P_INSTANCEID
    || ''');
    END;';
    DBMS_OUTPUT.PUT_LINE('JOB Action ' || L_JOB_ACTION);
    DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'supplier_job', JOB_TYPE => 'PLSQL_BLOCK',
    JOB_ACTION => L_JOB_ACTION, START_DATE => SYSTIMESTAMP
    , AUTO_DROP => TRUE,
    ENABLED => TRUE);
    END;
    PROCEDURE PROCESS_SUPPLIERS (
    P_INSTANCEID IN VARCHAR2
    ) IS
    BEGIN
    -- write your logic here, get all data based on Instance Id and do the
    validation and mark data as VALID OR INVALID
    UPDATE XX_SUPPLIERS
    SET
    STATUS = 'VALID'
    WHERE
    INSTANCE_ID = P_INSTANCEID;
    END;
    PROCEDURE GET_SUPPLIERS_PAGINATION_PROC (
    I_PAGE IN NUMBER,
    I_LIMIT IN NUMBER,
    I_PAGE_SIZE OUT NUMBER,
    P_DATA OUT SYS_REFCURSOR
    ) AS
    COUNT1 NUMBER;
    BEGIN
    SELECT
    COUNT(*)
    INTO COUNT1
    FROM
    SUPPLIERS;
    I_PAGE_SIZE := CEIL(COUNT1 / I_LIMIT);
    OPEN P_DATA FOR SELECT
    *
    FROM
    SUPPLIERS
    ORDER BY
    ID
    OFFSET NVL((I_PAGE - 1), 0) * I_LIMIT ROWS FETCH NEXT I_LIMIT ROWS
    ONLY;
    END;
    END XX_WRAPPER_SUPPLIERS_PKG;
    /