cancel
Showing results for 
Search instead for 
Did you mean: 

SAP XI - RFC ADAPTER - the message is sent but the sap xi not receive

Former Member
0 Kudos

I have the following senary:

1. A file with multiple customers is available on FTP.

2. The u201CSAP XIu201D takes the file and sends it to the SAP CRM (through RFC Adapter u2013 Asynchronously).

3. After processing the customer a log is generated and sent to sap xi (through RFC Adapter u2013 Asynchronously).

4. if there are any errors in the processing of the customer, is created a copy of the customer for future processing. And sent to SAP xi (through RFC Adapter u2013 Asynchronously).

FTP >> SAP XI >> SAP CRM

SAP CRM (LOG) > SAP XI > FTP

SAP CRM (ERROR) > SAP XI > FTP

The SAP CRM has two cluster and a virtual reference:

sapcrm u2013 10.xx.xx.81

sapcluster1 - 10.xx.xx.79 dialog

sapcluster2 - 10.xx.xx.78

FTP >> SAP XI >> SAP CRM

RFC Adapter (Receiver)

u201CRFC Client Parameteru201D

Application Server: 10.xx.xx.81

System Number: 40

SAP CRM (LOG) >> SAP XI >> FTP

SAP CRM (ERROR) >> SAP XI >> FTP

RFC Adapter (Sender)

u201CRFC Server Parameteru201D

Application Server (Gateway): 10.xx.xx.81

Application Server Service (Gateway): sapgw40

Program ID: interface_crm

u201CRFC Metadata Repository Parameteru201D

Application Server: 10.xx.xx.81

System Number: 40

IN THE SAP CRM I CREATE THE RFC u201CREFCXIu201D

Program ID: interface_crm

Host gateway: 10.xx.xx.81

Service gateway: sapgw40

AFTER PROCESSING THE CUSTOMER I SENT BACK THE LOG AND ERROR RESULT

  • LOG

IF NOT tg_log[] IS INITIAL.

CONCATENATE 'LOG' p_filename

INTO l_filename

SEPARATED BY '_'.

CALL FUNCTION 'Z_MDM_XI_CRM_LOG_NEG' IN BACKGROUND TASK DESTINATION 'RFCXI'

EXPORTING

filename = l_filename

TABLES

tg_log = tg_log

EXCEPTIONS

error = 1.

COMMIT WORK AND WAIT.

ENDIF.

  • ERRO

IF NOT tg_bp_erro[] IS INITIAL.

CONCATENATE 'ERRO' p_filename

INTO l_filename

SEPARATED BY '_'.

CALL FUNCTION 'Z_MDM_XI_CRM_ERRO_NEG' IN BACKGROUND TASK DESTINATION 'RFCXI'

EXPORTING

filename = l_filename

TABLES

tg_erro = tg_bp_erro

EXCEPTIONS

error = 1

OTHERS = 2.

COMMIT WORK AND WAIT.

ENDIF.

in my test i am using a customer that after being processed , generate a LOG and ERROR.

after processing the same customer several times... i has the result (SXMB_MONI):

Date Hour Sender interface name

22.04.2009 16:07:32 MI_Estrutura_Comercial_OUT

22.04.2009 16:07:34 Z_ECC_ORA_XI_CRM_LOG_ORG

22.04.2009 16:07:37 Z_ECC_ORA_XI_CRM_ERRO_ORG

22.04.2009 16:08:16 MI_Estrutura_Comercial_OUT

22.04.2009 16:08:21 Z_ECC_ORA_XI_CRM_ERRO_ORG

22.04.2009 16:09:05 MI_Estrutura_Comercial_OUT

22.04.2009 16:09:08 Z_ECC_ORA_XI_CRM_LOG_ORG

22.04.2009 16:09:11 Z_ECC_ORA_XI_CRM_ERRO_ORG

22.04.2009 16:09:45 MI_Estrutura_Comercial_OUT

22.04.2009 16:10:04 MI_Estrutura_Comercial_OUT

22.04.2009 16:51:46 MI_Estrutura_Comercial_OUT

22.04.2009 16:51:50 Z_ECC_ORA_XI_CRM_LOG_ORG

22.04.2009 16:52:16 MI_Estrutura_Comercial_OUT

22.04.2009 16:52:18 Z_ECC_ORA_XI_CRM_LOG_ORG

the return ok when generates the ERROR and LOG...

sometimes generate Just the LOG or nothing....

The correct is always generete the LOG and ERROR....

In the debug i see that flow always pass through the functions

Z_MDM_XI_CRM_LOG_NEG

Z_MDM_XI_CRM_ERRO_NEG

but sometimes generate Just the LOG or nothing

Anybody know why this happens ?

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

in development and qualit enviroment are ok...

in mey test always was to generate two messages... the LOG and ERROR...

but the times generate just the LOG or nothing...

in the RWB just register the message that is sent....

Former Member
0 Kudos

Hi

Try to write u r code as below , call RFC once normal next with background

CALL FUNCTION 'Z_MDM_XI_CRM_ERRO_NEG'

EXPORTING

filename = l_filename

TABLES

tg_erro = tg_bp_erro

EXCEPTIONS

error = 1

OTHERS = 2.

COMMIT WORK AND WAIT.

ENDIF.

CALL FUNCTION 'Z_MDM_XI_CRM_ERRO_NEG' IN BACKGROUND TASK DESTINATION 'RFCXI'

EXPORTING

filename = l_filename

TABLES

tg_erro = tg_bp_erro

EXCEPTIONS

error = 1

OTHERS = 2.

COMMIT WORK AND WAIT.

ENDIF.

lemme know

srini

Former Member
0 Kudos

check step by step ,

check in debugging that in all case your if condition satisfy to trigger bothe RFC, your RFCXI was triggered successfully , and messages generated from CRM ?

then check communication channel monitoring,and message monitoring.