--以下代码于20190708在Tony环境实现
--CREATE OR REPLACE PROCEDURE CUX_TEST_CREATE_SALESREP_API(p_effective_date DATE) AS
DECLARE
CURSOR cur_emp_fetch_data IS
SELECT
PER.person_id,
PER.full_name,
PER.first_name,
PER.last_name,
USR.user_name,
PER.employee_number,
PER.EMAIL_ADDRESS,
USR.user_id,
PER.EFFECTIVE_START_DATE
FROM apps.PER_ALL_PEOPLE_F PER,
apps.FND_USER USR
WHERE
USR.employee_id = PER.person_id
AND PER.EFFECTIVE_START_DATE =
NVL(TO_DATE('2018-1-14', 'YYYY-MM-DD'), TRUNC(SYSDATE));
ln_responsibility_id NUMBER;
ln_application_id NUMBER;
ln_user_id PLS_INTEGER := fnd_global.user_id;
lc_return_status VARCHAR2(1);
ln_msg_count NUMBER;
lc_msg_data VARCHAR2(5000);
lc_msg_dummy VARCHAR2(5000);
lc_output VARCHAR2(5000);
ln_resource_id JTF_RS_RESOURCE_EXTNS.RESOURCE_ID%TYPE;
lc_resource_number JTF_RS_RESOURCE_EXTNS.RESOURCE_NUMBER%TYPE;
ln_salesrep_number NUMBER;
ln_salesrep_id NUMBER;
l_msg_index_out NUMBER;
BEGIN
FOR rec_cur_emp_fetch_data IN cur_emp_fetch_data
LOOP
DBMS_OUTPUT.PUT_LINE('COMES HERE');
SELECT
responsibility_id,
application_id
INTO ln_responsibility_id,
ln_application_id
FROM fnd_responsibility_vl
WHERE
responsibility_name LIKE 'CUX%超级%';
BEGIN
ln_user_id := 1110;
fnd_global.apps_initialize(ln_user_id,
ln_responsibility_id,
ln_application_id);
mo_global.set_policy_context('S', 82);
DBMS_OUTPUT.PUT_LINE('COMES HERE123');
jtf_rs_resource_pub.create_resource
(p_api_version => 1.0,
p_category => 'EMPLOYEE',
p_start_date_active => SYSDATE,
p_source_id => rec_cur_emp_fetch_data.person_id,
p_user_id => rec_cur_emp_fetch_data.user_id,
p_user_name => rec_cur_emp_fetch_data.user_name,
p_resource_name => rec_cur_emp_fetch_data.full_name,
p_source_number => rec_cur_emp_fetch_data.employee_number,
p_source_name => rec_cur_emp_fetch_data.full_name,
p_source_first_name => rec_cur_emp_fetch_data.first_name,
p_source_last_name => rec_cur_emp_fetch_data.last_name,
p_source_business_grp_id => fnd_profile.value_specific('PER_BUSINESS_GROUP_ID'),
x_return_status => lc_return_status,
x_msg_count => ln_msg_count,
x_msg_data => lc_msg_data,
x_resource_id => ln_resource_id,
x_resource_number => lc_resource_number
);
DBMS_OUTPUT.PUT_LINE('COMES HERE456 return status' ||
lc_return_status);
IF (lc_return_status <> 'S') THEN
BEGIN
FOR i IN 1 .. ln_msg_count
LOOP
fnd_msg_pub.get(i, fnd_api.g_false, lc_msg_data, lc_msg_dummy);
lc_output := ('nihao' || ': ' || lc_msg_data);
END LOOP;
dbms_output.put_line('Error :' || lc_output);
END;
ROLLBACK;
ELSE
COMMIT;
dbms_output.put_line('Resource imported sucessfully.');
SELECT
JTF_RS_SALESREP_NUMBER_S.nextval
INTO ln_salesrep_number
FROM DUAL;
DBMS_OUTPUT.PUT_LINE('COMES HERE8888');
BEGIN
jtf_rs_salesreps_pub.CREATE_SALESREP(
P_API_VERSION => 1.0,
P_INIT_MSG_LIST => 'T',
P_COMMIT => 'T',
P_RESOURCE_ID => ln_resource_id, ----Get the resource id from JTF_RS_RESOURCE_EXTNS
P_SALES_CREDIT_TYPE_ID => 1,
P_NAME => rec_cur_emp_fetch_data.full_name, --
P_STATUS => NULL,
P_START_DATE_ACTIVE => sysdate,
P_END_DATE_ACTIVE => NULL,
P_GL_ID_REV => NULL,
P_GL_ID_FREIGHT => NULL,
P_GL_ID_REC => NULL,
P_SET_OF_BOOKS_ID => 2022,
P_SALESREP_NUMBER => ln_salesrep_number,
P_EMAIL_ADDRESS => rec_cur_emp_fetch_data.email_address, ----Replace with Email ID of the user
P_WH_UPDATE_DATE => sysdate,
P_SALES_TAX_GEOCODE => NULL,
P_SALES_TAX_INSIDE_CITY_LIMITS => NULL,
X_RETURN_STATUS => lc_return_status,
X_MSG_COUNT => ln_msg_count,
X_MSG_DATA => lc_msg_data,
X_SALESREP_ID => ln_salesrep_id);
COMMIT;
DBMS_OUTPUT.PUT_LINE('COMES HERE000000');
dbms_output.put_line('return status is ' || lc_return_Status);
FND_MSG_PUB.GET(p_msg_index => 1,
p_encoded => 'F',
p_data => lc_msg_data,
p_msg_index_out => l_msg_index_out);
DBMS_OUTPUT.put_line('API Error Message : ' || lc_msg_data);
dbms_output.put_line('msg data is ' || lc_msg_data);
dbms_output.put_line('Sales Rep id is ' || ln_salesrep_id);
END;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error While importing the Resource :' ||
SQLERRM);
ROLLBACK;
END;
END LOOP;
END;