Erro na API AR_RECEIPT_API_PUB.unapply

Perguntas relacionadas a questões técnicas do Oracle EBS. Criação de Concorrentes, Value Sets, Alerts, Forms Personalizations, Configurações, etc
Responder
archive
Rank: OraSauro
Rank: OraSauro
Mensagens: 595
Registrado em: Sex, 02 Dez 2016 7:31 am

Gostaria de saber se alguém já passou por esse problema e poderia ajudar.

Ao chamar a API AR_RECEIPT_API_PUB.unapply para desaplicar um recebimento, o recebimento permanece aplicado.

A API retorna status “E”, porém não retorna nenhuma mensagem de erro e a contagem de mensagens retorna 0.

Selecionar tudo

AR_RECEIPT_API_PUB.unapply
( p_api_version => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_TRUE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_cash_receipt_id =>5354347,
p_applied_payment_schedule_id => 10693523,
p_reversal_gl_date => trunc(sysdate)
);
Grata
archive
Rank: OraSauro
Rank: OraSauro
Mensagens: 595
Registrado em: Sex, 02 Dez 2016 7:31 am

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;
/
archive
Rank: OraSauro
Rank: OraSauro
Mensagens: 595
Registrado em: Sex, 02 Dez 2016 7:31 am

Um caso como esse aconteceu em outro projeto, no INV. Faltava um parâmetro em uma package e o suporte da Oracle não sabia onde estava o problema. Então, abri o programa que chamava aquela package e dentro do código tinha o comentário do número do patch/bug necessário, que corrigiu o problema.

É só uma dica, não sabemos se o desenvolvedor incluiu essa informação no código, mas não custa nada dar uma olhada.

Um abraço,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes