cancel
Showing results for 
Search instead for 
Did you mean: 

Creating idoc from file - how to implement serialization (No XI...)

Former Member
0 Kudos

Hi all,

I am looking to implement serialization on an interface based on file->Idoc process. Mind you there is no XI instance on our environment, nor there is any chance of having XI.

Currently, we use a ux shell to 'upload' the data from the structure file to an idoc created in the database. I would like to implement an serialization mecanism on this interface. My need is really simple, idocs of a single message type need to be processed in their order of creation and if one idoc in the sequence fails, then the other stop being processed.

I am been looking at serialization mecanism at idoc level and business object level but I have not been able to find some comprehensive documents...

This forum has a lot and I have some found some tips, but they always mention XI... which I do not have.

Any thoughts ?

Accepted Solutions (1)

Accepted Solutions (1)

bhavesh_kantilal
Active Contributor
0 Kudos

Albert,

I dont rememebr the exact details, but one soltution which I knew was tried and worked was ( was tried with XI, but will work without XI also ) that the Function Module Processing the Idoc used the CREDAT and CRETIM fileds of the Idoc control record to handle this.

The CREDAT and CRETIM fields are the creation date and creation time and the FM sorted all the Idoc's on the basis of these fiellds and then processed them..

So, maybe you can write the UniX Script to create the time in the Idoc control record and ask the porcesing application to make sure that the processing is on the basis of this field.

Regards

Bhavesh

PS : Maybe there are better solutions for this as well.

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

a quick answer is :

Go to Tcode <b>SALE on your ECC (R/3)</b> and choose path "<i>Modelling and implementing Business Process > Master Data Distribution > Serialization for sending and receiving data > Serialization using Message type</i>"

Then to do these steps:

1/ Define a serialization group

2/ Maintain a distribution model

3/ Define an inbound processing

4/ Create a variante on SAP program RBDSER04

5/ Create a job for this SAP Program

Regards

Mickael

Former Member
0 Kudos

Hi,

I was also trying to analyze the issue..

I have a small doubt in the steps that you mentioned...

Is the maintanence of the distribution model necessary ? The reason is that i got the understanding that this would be used to send the SERDAT idoc from the sending system to the receiving system...is it not?

Now in this particular case, the idocs are coming in through a file and the created idocs would be in status 64 (Partner profile have to be defined in such a way).

Now in SALE, the serialization groupsl are created, message types are attached to it....

And the batch job would read the message types in the serialization groups and process them in order of updated date & time of the control record...

Is my understanding correct ?

Thanks,

Renjith

Former Member
0 Kudos

I share the doubt concerning the serialization using message types...

From what I read from the documentation, it seems that this is used to model dependencies between message types.

Whereas the discussion here is about 'serializing' idocs of the same message type... Nonetheless thanx for the input I shall be looking into this further.

As for using the time stamp, I am not sure it fits the need. I need to process the idoc as they come, the serialization comes into play really when an idoc fails (51) for whatever reason, then my expectation would be for the processing programs NOT to process anymore message of the same type unless the failed idoc is not processed correctly (53). So I am not sure how the time stamp would help, because I do not see how an piece of code would know if an arriving idoc should be processed or not... Have I missed somehting ?

Former Member
0 Kudos

You're right, my input is when you have several types of idocs to be serialized (like create PO then update PO).

I read your question to quickly... sorry !

In your case "single Idoc", the problem is not the reception of Idoc into ECC, but the sending by XI, because inside XI the sending will be done by using <u>several Queues</u> and thus the sequence order could be not respected, especially if one of your queues is blocked or busy by another interface....

Maybe a solution (in XI !) is to specify only one Queue for your sending.... (not yet done by me !), but I prefer to send idocs by using option "unbounded":

See OSS note: 814393 - Multiple IDoc instances in an XI message

See pdf document "IDoc Packaging and Mapping Techniques"

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/877c0d53-0801-0010-3bb0-e38...

Moreover this last way have an high performance.

Mickael

Former Member
0 Kudos

About serialization in SAP...

I have been playing with serialization in SAP with group and with business objects and I am wondering something...

It seems that the serialization features in SAP (e.g. for the groups) ensures only the processing sequence when all is well. I.e. when an idoc in a sequence yields an error, are the following idocs processed as well ? Or is the processing of the sequence stopped altogether ?

Another question for the experts out there, when serializing with groups, how do you reprocess idocs in 51 ? It seems that RBDSER04 only deals with status 64 and ignores the 51... Should I process the 51 with RBDAPP01, but in this case is the sequence respected ??

Thanx for the inputs