Srs
Estou implementando uma interface entre um sistema legado e o GRC para o envio de NFes, o processo esta Ok, recebendo a nfe com um logical system diferente das filiais que enviam a nfe via SAP ECC, esta assiando corretamente e esta sendo feito o cancelamento e a inutilização corretamente, minha duvida é quanto ao retorno, para retornar o status para o sistema legado criei uma rfc que retorna os status do processo da nfe via SOAP ( o que esta funcionando ) mas ao final do processo, quando o GRC tenta devolver a NFE no processo convencional STANDART como devo proceder para que ele ignore as NFes desse logical system ?
Carlos,
para a integração com ERPs nao-SAP, vc pode utilizar as RFCs /XNFE/* conforme explicado na nota 1326691.
Ainda, para decidir se vc chama as RFCs J_1B* ou /XNFE/* baseado no Logical System Name, vc pode usar a BAdI /XNFE/BADI_RFC_EXTERN (se nao me engano, ultima view de NFE na SPRO).
Abs,
Henrique.
Todas as interfaces ja foram implementadas, o unico problema que estou tendo é com o retorno da BACKSTATUS, existe alguma outra alternativa?
hmmmm... entendi.
Vc quer dizer que na funcao que processa a /XNFE/BACKSTATUS nao há tratamento para chamar a BAdI e saber se chama a J_1B ou /XNFE/?
Se for isso mesmo, parece que "esqueceram" dela, seria caso de abrir chamado pro pessoal implementar.
Abs,
Henrique.
Deixa eu ver se consigo explicar melhor.
Aqui criamos servicos SOAP para chamar a /xnfe/nfe_create, /xnfe/nfe_cancel e skip, criamos tbem uma rfc no grc que é chamada via SOAP que verifica o status da NFe para retornar para o sistema legado nao sap, tudo esta indo muito bem, pois todas as nfes que sao criadas pelo legado possuem o logical system referente ao legado, porem, quando tenta retornar o status do sistema GRC para qualquer outro lugar ela fica com erro.
tem alguma ideia de como proceder sem ter que usar essa BADI que me disse?
Entao, mas o GRC vai tentar chamar ou a RFC J_1B ou a RFC /XNFE/.
Em sendo legado, vc nao tem a J_1B, entao tem que obrigatoriamente usar a BadI.
Vc pode manter o Logsys do legado na BD54 e apontar na BD97 pra uma RFC Destination tipo T que aponta pro XI.
Depois, basta vc fazer um cenario RFC to SOAP no XI.
Abs,
Henrique.
Henrique, mais uma ajuda por favor.
Estava lendo a documentação da nota132661 mas ela nao esta muito clara para mim em dois pontos:
1) onde eu realiso o setting para o campo CV_RFC_EXT do metodo RFC_EXTERN_CALL?
2) como eu faco para configurar que ao inves de usar a J1... do ECC ele vai chamar essa RFC?
Oi Carlos,
ao setar o flag cv_rfc_ext, o GRC chama as RFCs /XNFE/* ao inves das J_1B*. Veja no codigo apos a chamada da BAdI:
IF lv_rfc_ext IS INITIAL. CALL FUNCTION 'J_1B_NFE_XML_IN_TAB' DESTINATION lv_rfcdest ... ELSEIF lv_rfc_ext = 'X'. CALL FUNCTION '/XNFE/XML_IN_TAB' DESTINATION lv_rfcdest ... ENDIF.
Ainda, note que o Logical System é o input para o método rfc_extern_call da BadI.
A idéia é vc fazer um codigo ABAP que sete o flag baseado no logsys:
IF logsys = "logsys do legado". cv_rfc_ext = 'X'. ENDIF.
Ou algo assim.
Abs,
Henrique.
Obrigado Henrique agora ficou muito claro, nao tenho realmente mais duvidas
henrique mais uma duvida.
Na hora que eu seleciono o item da SPRO que cria a implementação para a BADI ele me pede um implementation class, como devo proceder?
Vc vai criar uma classe Z que implementa a interface da BAdI.
Ele nao te dá a opcao de criar uma nova?
Vc pode tentar via SE18 tb.
Abs,
Henrique.
Bom dia Carlos,
Ao selecionar, a SPRO irá tentar criar a implementação visto que não existe, é através desta implementação nova que você poderá colocar o template sugerido pelo Henrique e adequá-lo a sua necessidade.
Atenciosamente, Fernando Da Ró
Funcionou