Boa tarde
Eu já tive esse mesmo problema com outra procedure da mesma package.
Consegui resolver o problema passando o parametro ORG_ID.
Ex:
Selecionar tudo
AR_RECEIPT_API_PUB.Reverse(p_api_version => 1.0
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_validation_level => FND_API.G_VALID_LEVEL_FULL
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
,p_cash_receipt_id => p_cash_receipt_id
,p_receipt_number => p_receipt_number
,p_reversal_category_code => p_reversal_category_code
,p_reversal_category_name => p_reversal_category_name
,p_reversal_gl_date => p_reversal_gl_date
,p_reversal_date => p_reversal_date
,p_reversal_reason_code => p_reversal_reason_code
,p_reversal_reason_name => p_reversal_reason_name
,p_reversal_comments => p_reversal_comments
,p_called_from => p_called_from
,p_attribute_rec => p_attribute_rec
,p_global_attribute_rec => p_global_attribute_rec
,p_cancel_claims_flag => p_cancel_claims_flag
,p_org_id => v_org_id);
Segue script exemplo.
Selecionar tudo
DECLARE
v_errbuf VARCHAR2(1000);
v_retcode NUMBER;
v_org_id NUMBER := 82;
v_organization_id NUMBER := 82;
v_user_id NUMBER := FND_PROFILE.VALUE('USER_ID');
v_resp_id NUMBER := FND_PROFILE.VALUE('RESP_ID');
v_resp_appl_id NUMBER := FND_PROFILE.VALUE('RESP_APPL_ID');
--
p_api_version NUMBER;
p_init_msg_list VARCHAR2(240);
p_commit VARCHAR2(240);
p_validation_level NUMBER;
x_return_status VARCHAR2(240);
x_msg_count NUMBER;
x_msg_data VARCHAR2(240);
--
p_cash_receipt_id AR_CASH_RECEIPTS.CASH_RECEIPT_ID%TYPE;
p_receipt_number AR_CASH_RECEIPTS.RECEIPT_NUMBER%TYPE;
p_reversal_category_code AR_CASH_RECEIPTS.REVERSAL_CATEGORY%TYPE;
p_reversal_category_name AR_LOOKUPS.MEANING%TYPE;
p_reversal_gl_date AR_CASH_RECEIPT_HISTORY.REVERSAL_GL_DATE%TYPE;
p_reversal_date AR_CASH_RECEIPTS.REVERSAL_DATE%TYPE;
p_reversal_reason_code AR_CASH_RECEIPTS.REVERSAL_REASON_CODE%TYPE;
p_reversal_reason_name AR_LOOKUPS.MEANING%TYPE;
p_reversal_comments AR_CASH_RECEIPTS.REVERSAL_COMMENTS%TYPE;
p_called_from VARCHAR2(240);
p_attribute_rec AR_RECEIPT_API_PUB.ATTRIBUTE_REC_TYPE;
p_global_attribute_rec AR_RECEIPT_API_PUB.GLOBAL_ATTRIBUTE_REC_TYPE;
p_cancel_claims_flag VARCHAR2(240);
BEGIN
FND_CLIENT_INFO.SET_ORG_CONTEXT(v_org_id);
--
SELECT USER_ID
INTO v_user_id
FROM FND_USER
WHERE USER_NAME = 'TSTUSER';
--
SELECT RESPONSIBILITY_ID
,APPLICATION_ID
INTO v_resp_id
,v_resp_appl_id
FROM FND_RESPONSIBILITY_VL
WHERE RESPONSIBILITY_NAME = 'AR SUPERUSER';
--
FND_GLOBAL.APPS_INITIALIZE(user_id => v_user_id
,resp_id => v_resp_id
,resp_appl_id => v_resp_appl_id);
--
MO_GLOBAL.INIT(p_appl_short_name => 'AR');
--
p_receipt_number := '00000003-01/08/11';
p_cash_receipt_id := 12002;
p_reversal_category_code := 'NSF';
p_reversal_reason_code := 'NSF';
p_reversal_gl_date := SYSDATE;
p_reversal_date := SYSDATE;
--
AR_RECEIPT_API_PUB.Reverse(p_api_version => 1.0
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_validation_level => FND_API.G_VALID_LEVEL_FULL
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
,p_cash_receipt_id => p_cash_receipt_id
,p_receipt_number => p_receipt_number
,p_reversal_category_code => p_reversal_category_code
,p_reversal_category_name => p_reversal_category_name
,p_reversal_gl_date => p_reversal_gl_date
,p_reversal_date => p_reversal_date
,p_reversal_reason_code => p_reversal_reason_code
,p_reversal_reason_name => p_reversal_reason_name
,p_reversal_comments => p_reversal_comments
,p_called_from => p_called_from
,p_attribute_rec => p_attribute_rec
,p_global_attribute_rec => p_global_attribute_rec
,p_cancel_claims_flag => p_cancel_claims_flag
,p_org_id => v_org_id);
--
IF (x_return_status = 'S') THEN
COMMIT;
DBMS_OUTPUT.PUT_LINE('SUCCESS');
DBMS_OUTPUT.PUT_LINE('Return Status = ' || SUBSTR(x_return_status,1,255));
DBMS_OUTPUT.PUT_LINE('Message Count = ' || x_msg_count);
DBMS_OUTPUT.PUT_LINE('Message Data = ' || x_msg_data);
ELSE
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('Return Status = ' || SUBSTR (x_return_status,1,255));
DBMS_OUTPUT.PUT_LINE('Message Count = ' || TO_CHAR(x_msg_count));
DBMS_OUTPUT.PUT_LINE('Message Data = ' || SUBSTR (x_msg_data,1,255));
DBMS_OUTPUT.PUT_LINE(APPS.FND_MSG_PUB.Get(p_msg_index => APPS.FND_MSG_PUB.G_LAST,p_encoded => APPS.FND_API.G_FALSE));
--
IF (x_msg_count >= 0) THEN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i || '. ' || SUBSTR(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE),1,255));
END LOOP;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception :' || SQLERRM);
END;
/