Thursday, 9 April 2026

Script to update Service Contract Header

SET SERVEROUTPUT ON;
DECLARE
    l_api_version    CONSTANT NUMBER := 1.0;
    l_init_msg_list  CONSTANT VARCHAR2(1) := 'T';
    l_return_status  VARCHAR2(1);
    l_msg_count      NUMBER;
    l_msg_data       VARCHAR2(2000);
    l_chrv_tbl_in    okc_contract_pub.chrv_tbl_type;
    l_chrv_tbl_out   okc_contract_pub.chrv_tbl_type;
    l_clev_tbl_in    okc_contract_pub.clev_tbl_type;
    l_clev_tbl_out   okc_contract_pub.clev_tbl_type;
    l_cle_tbl_in     okc_contract_pub.clev_tbl_type;
    l_cle_tbl_out    okc_contract_pub.clev_tbl_type;
    i                NUMBER := 1;
    l_count          NUMBER := 0;
    l_id             okc_k_headers_all_b.id%TYPE;
    l_end_date       okc_k_headers_all_b.end_date%TYPE;
    
CURSOR header_cur IS
    SELECT
        id,
        contract_number,
        start_date,
        end_date
    FROM
        okc_k_headers_all_b
    WHERE
        id = 7569984;

BEGIN
    fnd_global.apps_initialize(user_id => 233132, resp_id => 598452, resp_appl_id => 515);
    mo_global.init('OKS');
    mo_global.set_policy_context('S', 103);
    
FOR header_rec IN header_cur LOOP
        l_chrv_tbl_in(1).id := header_rec.id;
        l_chrv_tbl_in(1).contract_number := '5144117-Test Agreement';
        l_chrv_tbl_in(1).short_description := 'Test Agreement';
        
        okc_contract_pub.update_contract_header(p_api_version => l_api_version,
                                               p_init_msg_list => fnd_api.g_true,
                                               x_return_status => l_return_status,
                                               x_msg_count => l_msg_count,
                                               x_msg_data => l_msg_data,
                                               p_restricted_update => 'N',
                                               p_chrv_tbl => l_chrv_tbl_in,
                                               x_chrv_tbl => l_chrv_tbl_out);
        
        dbms_output.put_line('l_return_status: ' || l_return_status);
        
        IF ( l_return_status <> 'S' ) THEN
            dbms_output.put_line('Error while updating Contract Header ' || header_rec.contract_number);
            dbms_output.put_line('Error: ' || l_msg_data);
        ELSE
            dbms_output.put_line('Sucess: ');
            COMMIT;
        END IF;

    END LOOP;

EXCEPTION
    WHEN OTHERS THEN
        dbms_output.put_line(' Error while update Contract back to Enter status  ' || sqlerrm);
END;
/

No comments:

Post a Comment