on 08-12-2014 9:25 PM
Hi all,
We are working on PI 7.4 SP07 single stack system.
For a particular interface (File(FTP)-->PI-->ABAP Proxy) the requirement is to fail the message in PI and raise an alert if the value for a specific field (say BatchID) in the source file is maintained in lower case.
What is the best way to achieve this requirement.
Please share your thoughts and inputs.
regards,
Younus
Hi Mohammed
First of all my recommendation is to validate the information in the source system. Why? Because if you reject the data in the target system finally you force the source system to apply validations. A validation in the source system implies a better perfomance in the network dataflows.
Although you can validate the data in a mapping with a UDF, this wouldn't be my recommendation.
You can enhance data structure definition with validations like the previous post and actívate in the integration builder elements (adapter or integration engine), Then i would define an alert in PI for this interface.
All depends on the way you need to keep informed the users about the errors or in the kind of validations. Validate uppercase letters it's very simple but for example you would be to used the target system to validate certain values for a field.
Kr
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Younus - If you can modify the source xsd, then may be you can go for schema validation option which way you don't need to execute the mapping.
something like this -
XML Schema Restrictions/Facets
The next example defines an element called "initials" with a restriction. The only acceptable value is THREE of the UPPERCASE letters from a to z:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Mohammed,
We had similar situation. We used enhanced receiver determination to perform the validation (operation mapping). Here you can pass the Receiver1 (Mail System) and Receiver2(Proper Business System if successful) as parameters. So that you can change them in different landscapes. Then based on the receiver determined subsequent operation mapping can be performed again.
Hope it helps!
Cheers,
Anand Patil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Yonus,
I would recommend the below option rather than failing the mapping in PI .
Check the condition and notify to Business for condition failure .So that they can correct the file and places again
1)Use the Enhanced Receiver Determination and check the condition based on this open either mail or ECC Business component/Business system.
2)Create 2 mappings one for mail and other for ABAP Proxy communication.
-------------------------------------------------
There is also an option to fail @ mapping level by throwing a custom exception .
throw new StreamTransformationException("$$$BatchID field value is in lower case$$$");
Regards
Venkat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Younus,
I would suggest use a UDF to check if the batchID is in lowercase. If its lowercase, you can either fail it in the UDF itself or pass 0 as return value and map it to the Root Node.
In both the cases we are trying to fail the mapping.
Thanks & Regards,
Tejas Bisen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Younus,
Can you please validate the case sensitivity of the particular field value in mapping itself.
Thanks,
Venkat B.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.