cancel
Showing results for 
Search instead for 
Did you mean: 

ALE: FI-IDoc FIDCCP01/FIDCCP02

Former Member
0 Kudos

Hi all,

i have a problem with creating and sending IDocs for FI-Documents. I use Message type FIDCC1 and the IDoc Basictype FIDCCP01 (with an extension). In the Partnerprofiles i maintained this data combination. But by posting an FI Document an IDoc with IDoc type FIDCCP02 is created but faulty with the reason of not existing entries in the outbound table. The reason of faulty is correct, but i do not really understand why an FIDCCP02 is created. I assume that the reason is the used function module 'FI_IDOC_CREATE_FIDCC1' (i think that is used) and the IDoc type that is used is hard coded FIDCCP02. But some created IDocs fit to my maintained partner profile (FIDCCP01 with extension). So that i am really confused and do not really know what has to be done now.

An OSS message (459938) says that the old FIDCCP01 still can be used. How?

I am working with a 46B (PatchLevel 51).

Please help.

Thanks in advance

Michael

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi , I don't clear about what you mentioned

'caused by using a logical message code and a logical message function in the partner profile.'

And how do you fill the partner profile now?

And which control information did you miss formerly?

Interesting in you solution, and waitting for you reply.

thanks

Former Member
0 Kudos

Hi,

in WE20 you maintain the partner profile. Selecting a partner you see which messages are distributed (outbound and inbound). If you select a message type and show the details (for example Screen 'Partner profiles: Outbound parameters) you see in addition to the message type a field for message code (3 digits) and message function (3 digits). With these two additional informations you can separate processes using the same message type.

Think about several systems sending data with one message type to one central system and you want to handle the inbound different. Therefore you can use message codes and message functions.

My problem was that i didn't really know what i did when i used this the first time. We wanted to distribute the message FIDCC1 with the IDoc type FIDCCP01. We have done several times with other systems and it always runs without any problems. But when i started using MESCOD and/or MESFCT an error appears with IDoc type FIDCCP02 and that our additional segment is not identifyable).

So i had a look how the ALE service version conversion works. As i wrote before our Application creates a master IDoc with type FIDCCP02 and former this was converted to FIDCCP01.

It is done like following (sequences of calls):

CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

PERFORM 'IDOC_SELECTION_AND_SERVICES'

CALL FUNCTION 'ALE_IDOC_SERVICES_APPLY_OUT'

PERFORM 'IDOC_CONVERT_VERSION_OUTBOUND'

PERFORM 'CHANGE_IDOC_VERSION'

The program takes the values of the IDoc control information (MSGTYP, MESCOD, MESFCT) and checks them against table EDP13. If an entry exists the change of the IDoc version will be done, else not.

So my fault was to maintain the partner profile with MESCOD and MESFCT but in the control information these values were empty (how should the application program know which walue have to be filled in?). So i did it in an exit (F050S004 FM EXIT_SAPLF050_007):

  • >>> Enrich IDoc Control structure with a value for the logical

  • message function, to make a difference for different processes in

  • the partner profile.

idoc_control-mesfct = c_mesfct_fidcc1. "YFA

Now it fits to my partner profile and it runs properly.

But don't forget to maintain the partner profile in the receiving system equal and VERY IMPORTANT think about the inbound processing. You have to maintain the Assignment of the inbound FM to log. Message and IDoc type with MESCOD and MESFCT using transaction WE57.

Thats all.

Hope it helps.

Michael

Former Member
0 Kudos

Hi, I also have a check on my server. There is no associated FM for create or receive FIDCCP02.

There is only 'FI_IDOC_CREATE_FIDCC1' and 'FI_IDOC_CREATE_FIDCC2', but both of them are for IDOC type FIDCCP01, though the Message type is different.(FIDCC1, FIDCC2)

Code in SAP like following:

PERFORM I_EDIDC_C_AUFBAUEN USING K_MESTYP_C1. "IDOC-Kopf aufbauen

FORM I_EDIDC_C_AUFBAUEN USING IEC_MESTYP.

CLEAR I_EDIDC.

I_EDIDC-MESTYP = IEC_MESTYP. "FIDCC1/2 kompletter Beleg

I_EDIDC-IDOCTP = K_IDOCTP_C. "'FIDCCP01'

I_EDIDC-SNDPRN = I_SENDSYS. "Sendersystem

  • I_EDIDC-RCVPRN = I_RECSYS. "mehrere Empfängersysteme

  • I_EDIDC-RCVPRT = K_RCVPRT. "'LS' Partnerart;

I_EDIDC-SNDPRT = K_RCVPRT. "'LS' Partnerart

ENDFORM.

So I think you can create a customize FM for create IDOC FIDCCP02.

And about you mentioned 'But by posting an FI Document an IDoc with IDoc type FIDCCP02 is created', can you explain for me more details about how you generate the IDOC? Maybe we can add our FM into the user-exit.

Former Member
0 Kudos

Hi,

i solved the problem for myself.

The reason was that the ALE Service for version conversion was not able to convert the created FIDCCP02 Master IDoc into an FIDCCP01 Master IDoc. The reason for that was an error from my side that was caused by using a logical message code and a logical message function in the partner profile.

I didn't enrich the IDoc control record in an exit with these informations, so that the ALE Service for version conversion had a look with the combination MSGTYP, MESCOD and MESFCT in the table EDP13 (technical entries for Partner profiles) and didn't find a corresponding entry, so the service found no different IDoc Basic type in which it should be converted.

After filling the IDoc control structure with the missing informations, the version conversion of the ALE service from FIDCCP02 to FIDCCP01 runs.

The answer to your question for the used FM for FIDCCP02 is very simple:

It is the same as for FIDCCP01 -> 'FI_IDOC_CREATE_FIDCC1'. In 46B it is dependent to the Patch level. Patch Level < 38 a FIDCCP01 Master IDoc is created. Since Patch Level 38 FIDCCP02 Master IDocs a created, but corresponding to the maintained partner profile there can be a version conversion in the ALE Service.

Code in SAP 46B (PL 51) FM 'FI_IDOC_CREATE_FIDCC1'

I_IDOCTP_C = K_IDOCTP_C02. "FIDCCP02 ab 4.6C

PERFORM I_EDIDC_C_AUFBAUEN USING K_MESTYP_C1

I_IDOCTP_C.