cancel
Showing results for 
Search instead for 
Did you mean: 

Query regarding Seeburger Classifier

shweta_walaskar2
Contributor
0 Kudos

Hello,

We have a problem with Russian characters where these are cut by AS2 adapter.

In order to analyze this,I have changed the configuration to use Classifier instead of giving fixed mapping name.

Now,I can see the log as:

2009-09-17T09:58:27.144+0200 INFO starting conversion Edifact_XXX (id : 7281816071253174307119 ) at Thu Sep 17 09:58:27 CEST 2009

2009-09-17T09:58:27.172+0200 INFO starting conversion See_E2X_ORDERS_UN_D96A (id : 14608852671253174307172 ) at Thu Sep 17 09:58:27 CEST 2009

2009-09-17T09:58:27.664+0200 INFO Child Dest Encoding : UTF-8

2009-09-17T09:58:27.664+0200 INFO Child Source Encoding :

2009-09-17T09:44:56.541+0200 INFO Child XML Encoding :

Problem still persists.

Child Source Encoding and Child XML Encoding are always blank in the log.

I have tried setting source encoding using BIC module ,CharsetConversion module, and setSourceEncodingFromClassifier module.

Still ,I cant see any value in thes fields in the log.

Can anybody please let me know how can I populate these values.

I suspect that the problem with special characters is because of incorrect source encoding.

Thanks.

Regards,

Shweta

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

From experience, forget the Seeburger classifier

instead please use the srcEncoding parameter for the BIC module, as mentioned by Rajesh. Set it to the needed character set. That should work fine.

CSY

shweta_walaskar2
Contributor
0 Kudos

Hello,

Some of my findings:

I compared the binary codes and found that message is having encoding ISO-8859-15

For testing messages sent via AS2,we have created a test scenario which picks this file from our FTP server using a file adapter in our test system and send it via AS2 to our development system using AS2 adapter(in dev system)

If I set the file type as Binary in our File sender (in test system) and send it to AS2 sender(in dev system),it gives an error.

If I set file type as Text in our File sender (in test system) with encoding ISO-8859-15 and send it to AS2 sender(in dev system),it works fine.

So,this scenario works fine when file type is explicitly set to Text using File adapter,no matter then we send it directly or using AS2 adapter.Special characters are received via AS2 adapter also,in our dev system,if we set file type as Text in our test system.

Does this give any idea about this problem?

Please let me know.

Thanks.

Regards,

Shweta

former_member181962
Active Contributor
0 Kudos

Hi Shweta,

I suggest you to write a blog on your findings.

I have been seeing you working on a area where there is not so much help already available.

It might be of great use to many people.

Regards,

Ravi kanth Talagana

shweta_walaskar2
Contributor
0 Kudos

Hi Ravi,

Thanks.I will definitely do that.

Regards,

Shweta

Former Member
0 Kudos

This is some mapping code (as used in the SEEBURGER standard mappings) from the NewMapping program, which passes the encoding input parameters to the child mappings.

// Source Encoding

copy getInputValue("srcEncoding") to srcEncoding$;

setInputValue("getChildSourceEncoding", srcEncoding$);

// Destination Encoding

copy getInputValue("destEncoding") to destEncoding$;

setInputValue("getChildDestEncoding", destEncoding$);

In the child mapping we read the passed parameters and set the values (the if in the beginning results from a different handling for split messages):

copy getInputValue("SplittingMode") to splittingMode$;

copy splittingMode$ to Split%;

if Split% = 1

modifyWarningLevel(2150,4);

stopReadingOnError("off");

copy getInputValue("getChildDestEncoding") to ChildDestEncoding$;

if ChildDestEncoding$ != ""

#javastart

m_stdout.setEncoding(_StrVar_CHILDDESTENCODING.getString());

#javaend

else

ChildDestEncoding$ = "UTF-8";

#javastart

m_stdout.setEncoding("UTF-8");

#javaend

endif

traceln("Child Dest Encoding : " & ChildDestEncoding$);

endif

// Getting Source Encoding Paramteter

copy getInputValue("getChildSourceEncoding") to ChildSrcEncoding$;

if ChildSrcEncoding$ != ""

#javastart

m_stdin.setEncoding(_StrVar_CHILDSRCENCODING.getString());

#javaend

endif

traceln("Child Source Encoding : " & ChildSrcEncoding$);

// Getting XML Encoding Parameter

copy getInputValue("setXMLEncoding") to ChildXMLEncoding$;

if ChildXMLEncoding$ != ""

#javastart

m_stdout.setXMLEncoding(_StrVar_CHILDXMLENCODING.getString());

#javaend

endif

I hope this helps, you may have a look at the standard mappings shipped by SEEBURGER in addition where this functionality is included !

shweta_walaskar2
Contributor
0 Kudos

Hello Frederic,

Thanks a lot for providing such detailed information.

In our case,we have deployed Standard as well as custom mapping for ORDERS(with setDestination encoding = "UTF-8")

In splitter,we provide a classifier mapping ID and in the logs I can see that Standard mapping is executed whereas,I believe Custom mapping should be executed.

I would try to find if I can find such code in our custom mapping as well.

Thanks again for your help.

Regards,

Shweta

Former Member
0 Kudos

You can see in the log you provided:

2009-09-17T09:58:27.144+0200 INFO starting conversion Edifact_XXX (id : 7281816071253174307119 ) at Thu Sep 17 09:58:27 CEST 2009

2009-09-17T09:58:27.172+0200 INFO starting conversion See_E2X_ORDERS_UN_D96A (id : 14608852671253174307172 ) at Thu Sep 17 09:58:27 CEST 2009

That means that your custom mapping Edifact_XXX has been started which in turn starts the standard mapping "See_E2X_ORDERS_UN_D96A" - if you want to start another child mapping instead of the See_E2X... mapping, you'll need to alter your custom mapping Edifact_XXX !

shweta_walaskar2
Contributor
0 Kudos

Hello Frederic,

Thanks for the information.

What I used to think was,it depends on the mapping name which we configure in Message splitter.

I tried this and it didn't work.

Hence your statement makes sense,that I need to alter my custom mapping.

I need to check the possibility if we can deploy new Edifact_XXX mapping.

Also, setting source encoding never works for us,I could never see this value in converter log,no matter whatever value I set .However,I can see child XML encoding if I use setXMLEncoding in module configuration.

But the problem still persists

Thanks.

Regards,

Shweta

Former Member
0 Kudos

If you possible can you send across the EDI File which you are dealing..

Rajesh

shweta_walaskar2
Contributor
0 Kudos

Hello Rajesh,

Could you please let me know how can I attach a file here?

Thanks.

Regards,

Shweta

Former Member
0 Kudos

I don't think you can attach the same here

can you send it acoss mail id which is in business card

Rajesh

shweta_walaskar2
Contributor
0 Kudos

Hello Experts,

Can anybody please help in this?

Thanks in advance.

Regards,

Shweta

Former Member
0 Kudos

In order to provide the encoding for source data too you need to provide the following parameter in BIC module configuration

i.e srcEncoding Value "UTF-8" for e.g.

then you can see the below logs

2009-09-24T12:37:15.443-0400 INFO Child Dest Encoding : UTF-8

2009-09-24T12:37:15.448-0400 INFO Child Source Encoding : UTF-8

In your case I feel you need to have XML encoding which can be set with the below parameter

setXMLEncoding : value of encoding will help

HTH

Rajesh

Edited by: Rajesh on Sep 24, 2009 10:12 PM

shweta_walaskar2
Contributor
0 Kudos

Hi Rajesh,

Thanks for the reply.

I have added this parameter,log still remains the same

Regards,

Shweta

Former Member
0 Kudos

DId you used any double quotes for the value for the srcEncoding ?

if used then remove and try the same

also how are you testing the same ? are you seeing the logs in the MONI ? or via BIC mapping editor..

HTH

Rajesh

shweta_walaskar2
Contributor
0 Kudos

Hello Rajesh,

I haven't used double quotes in srcEncoding.

I am checking this log in SXI_MONITOR

Thanks.

Regards,

Shweta

Former Member
0 Kudos

The problem is that the parameter you specify is passed to the Edifact_XXX mapping which in turn will check which child mapping is to be executed and call the child mapping. You will need to alter the "main mapping" Edifact_XXX to pass the source encoding (you have specified in the module configuration) to the child mapping.

shweta_walaskar2
Contributor
0 Kudos

Hello,

How do I alter the main mapping..rather how do I set this parameter for main mapping?

Sorry,I am new to splitter configuration.

Please let me know.

Thanks.

Regards,

Shweta

Former Member
0 Kudos

Hi Shewta,

Can you check my blog

http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417100)ID1827405950DB11858169775806181462End...

in sender communication channel at module tab you need to provide the said parameter for BIC(CallBicXIRaBean) module rather than for splitter

Rajesh