on ‎2021 Dec 07 3:11 PM
Dear Exports,
does anybody know if it is possible to enhance the payload for the Pre-Processing step of the Open Channel Integration? If that is possible, which BAdI has to be used?
My goal is to add the value of a Custom Field that I created on Campaign level and added to the UI.
BR Tobias
Request clarification before answering.
Hi jimbotbs
Can you give me a high level of what you are wanting to achieve using the Pre-Processing step?
And no, package size is a hard limit of 1000 - we tried the 99999 amount too. Previously it was 100 and performance was terrible. I have raised with SAP Support that this should be at least 10000, but no word back as yet
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Dean,
thanks for the information regarding package size. That leads to our problem.
We have to send e.g. 50.000 contacts to CPI and from there to an External System where a List should be filled with that Contacts. The List should be cleaned before it is newly created. This is done by setting a parameter.
When all 50.000 contacts would arrive on CPI there would be no problem because we could hand them over as one package. But it is splitted into packages with size 1000. Now we thought that we could use the package with package Id "1" to clean the List in the External System. But then we realized that the packages are mixed up and we can not guarantee that the package with ID 1 is the first one that is sent to the External System. So, in our case that would lead to the error that maybe the List is filled up with Contacts before and is then cleaned up again when package 1 arrives...
That's why we searched for another option. We would like to use the PreProcessing Step to clean up the List and then use the Processing to fill it with Contacts again.
My problem is that on Campaign Level in MC I define which List should be filled. This is done by a Custom Field of type Text. We were able to send the value of that field to CPI in the Processing step. But now we need it in the PreProcessing message, too.
Hope that makes it clearer.
BR Tobias
The only other Option I see is to use the Data Store in CPI and to save the data of the Processing Step there. Then we could use the PostProcessing to know that all packages have arrived at CPI, clean the Data Store again and send the data to the External System. But in our opinion the other way using PreProcessing is the better one.
Hi schneidert ,
I've double checked our implementation of Pre-Processing and we used this at Campaign Execution level, for validations. eg. Offer out of date range
For your scenario, unless there is some way you can determine a 'clean' list of customers, this might not be the correct BADi to use.
I'm not sure what you mean when you say the data is mixed up, but if your 50000 are generated in SMC uniquely, then either in the Processing BADi or in CPI you should be able to 'order' the data. CPI can easily take multiple packages of 1000 records and batch the data to be pushed onto the External System
Last option would be Data Store I would say, every time I've asked my CPI colleagues about using Data Store they have been apprehensive. I'm sure there is a good scenario for it, this may be one of those cases
Hi deanmg,
with "mixed up" I mean that we cannot guarantee that the message with "package Id = 1" is processed first, then message with "package ID = 2" and so on... If we could guarantee that, it would be easy to use the one with package Id = 1 to set a parameter to clean the list in the external system.
maik_bosch yes, that's exactly why we are thinking about using the PostProcessing to take the Data from data store instead of scheduling the other iFlow.
Hi deanmg,
data is mixed up in the sense of parallel processing. By that I mean that there is kind of a execution order guarantee on preprocessing -> processing -> postprocessing but not within the processing step itself. If data is sent in packages the SCI IFlow doesn't care if package one finishes first or package ten. But as already stated this can be solved by using the Data Store. Since postprocessing kind of gives a guarantee of being the last step, it may be used to trigger the IFlow reading the previously saved data. But still this seems to be a suboptimal/cheated/unclean scenario. I can relate to your CPI colleagues being concerned about scenarios using data store. It nearly always has a bad smell if you have to use data store in an integration scenario.
Best Regards Kevin
| User | Count |
|---|---|
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.