Processing big EDI files
I am going to work on project where we will get EDI X12 files from customer. We expect weekly file may be 50MB with 100K messages.
In output I should create 10 files batch of 10K each.
Few of vendors will send file with one ST per product ,it means multiple ST segments in file- EDI disassemble component will help here to break it automatically. I can use Assembler pattern in output to combine it.
Few vendors will send only one ST which will have multiple products. Question is how I should break it same was . I mean per product so that can use same assembler pattern to combine and batch?
I want efficient solution for above problem. I mean processing big file should not take longer time. I know if I use assembler pattern (singleton pattern performance might be bottleneck).
If any body already implement such solution then please suggest me better options.
Hi,
Refer:
Outbound EDI Batching tutorial and Batching
Outgoing EDI Messages.
Rachit
Similar Messages
-
I am trying to process bigger file in biztalk orchestation, my observation is very slow.
I have requirement that will get edi file and I need to convert it in to xml file for ERP. As my requirement is very simple I just create map and generating corresponding output file. I get single EDI file with just one ST so I consume it convert to XML
and send to ERP.
It works well for smaller file. When I try to test it with bigger file like 50 MB it is very slow like it already more than 20 minutes but still going on.
I am trying it on local box where RAM is 8 GB, production scenario will be different . But still like to check is it normal for such big file?
What are best practice for it? As i have similar file from multiple customer I just create different maps for each and load dynamically it. That is reason I am using orchestration as it was easy by assignment shape.
Any suggestion?As mention in the How
BizTalk Server Processes Large Messages. Transforming
a document with a map is a memory-intensive operation. So try find a way where you can do the transformation outside
the BizTalk. Following articles can help you.
How do I reuse BizTalk maps outside of BizTalk?
Calling a BizTalk Transform (Map) from .Net Code
How To Boost Message Transformations Using the XslCompiledTransform class
Rachit -
Filtering EDI Files in B2B 11g
Hi Gurus,
We have a requirement that we should not process the EDI files which will have Usage Indicator(ISA15) has 'T' value. Rather we should send the file to some test directory on SOA file system.
Could you please let me know whether we can achieve this in B2B 11g.
Regards,
RaghavHi Raghav,
Oracle B2B is not a service bus and hence does not has a functionality of content based routing. Better change your design and have a service bus before B2B to do content based routing.
Regards,
Anuj -
EDI Seperator Channel Issue - Single EDI File is Creating Two IDOCs
Hi Experts,
We are facing a strange issue in our project. We are working on SAP PO 7.4 SP06. Our's is an EDI to IDOC Scenario. We are using standard EDI XSD's generated by B2B 2.0 Cockpit. Since yesterday our Quality server is behaving strangely. Its processing an EDI File and generating TWO IDocs out of it.
When we run the same EDI File in our DEV Environment it executes perfectly and creates only ONE IDOC.
Signature in OM and it is 1 to 1 and in MM Target IDOC header is mapped to "Constant".
Our Scenario is :
1st IFLow : File to EDISeperator
2nd IFlow: EDISeperator to IDOC.
Appreciate your valuable inputs.Hi,
Please do check your input file(s). Could be that you offer an EDI interchange, containing multiple messages, to SAP PO.
Also, maybe in the mean time, some objects or configuration was changed.
Kind regards,
Dimitri -
Parsing an EDI file and populating the data into database table
Hi ,
Please help me in parsing an edi file and getting the required columns.
we get an EDI file from a bank. I need to parse that file and populate the db table with the required columns.
the file is '*' delimited and every line ends with '\'.
The record starts with 'ST*' and ends with 'SE*'.
sample edi file is
ISA*00* *00* *ZZ*043000096820 *ZZ*2156833510 *131202*0710*U*00401*000001204*0*P*>\ ignore first 2 lines
GS*RA*043000096820*2156833510*131202*0710*1204*X*003020\
ST*820*000041031\
BPR*X*270*C*ACH*PPD*01*101036669***9101036669**01*031000053*DA*00000008606086714*131202\
TRN*1*101036661273032\
DTM*007*131202\
N1*1U*BPS\
N1*BE*MICHAEL DRAYTON*34*159783633\
N1*PE*BPS*ZZ*183383689C2 ABC\
N1*PR*ABC TREAS 310\
SE*9*000041031\ ST*820*000041032\
BPR*X*686*C*ACH*PPD*01*101036669***9101036669**01*031000053*DA*00000008606086714*131202\
TRN*1*101036661273034\
DTM*007*131202\
N1*1U*BPS\
N1*BE*SAMIA GRAVES*34*892909238\
N1*PE*BPS*ZZ*184545710C5 ABC\
N1*PR*ABC TREAS 310\
SE*9*000041032\
Below is the procedure I am trying to use for parsing that file. but the logic is not working. can you please help me in doing this. its very urgent requirement.
CREATE OR REPLACE package body p1 is
Function parse_spec(p_str varchar2) return t_str_nt is
begin
return regexp_replace(p_str,'\\$',null);
end;
procedure edi( is
l_out_file utl_file.file_type;
l_lin varchar2(200);
field1 number(9);
field2 varchar2(10 byte);
field3 varchar2(15 byte);
field4 varchar2(15 byte);
field5 varchar2(20 byte);
field6 varchar2(20 byte);
field7 varchar2(20 byte);
field8 varchar2(9 byte);
field9 varchar2(15 byte);
field10 varchar2(5 byte);
l_item_nt t_str_nt:=t_str_nt();
begin
l_out_file := utl_file.fopen (file_path, file_name, 'r');
IF utl_file.is_open(l_out_file) THEN
LOOP
BEGIN
l_item_nt:= utl_file.get_line(l_out_file, l_lin);
IF l_item_nt IS NULL THEN
raise no_data_found;
Else
for k in 1..l_item_nt.count loop
case
when l_item_nt(k) like 'ST*%' then
field1:= ltrim(regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3),0);
when l_item_nt(k) like 'BPR*X*%' then
field2 := regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3);
when l_item_nt(k) like 'TRN*1*%' then
field3:= regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3);
when l_item_nt(k) like 'DTM*007*%' then
field4:= regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3);
when l_item_nt(k) like '%*BE*%' then
field5 := regexp_substr(regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3),'[^ ]+', 1, 1);
field6 := regexp_substr(regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,3),'[^ ]+', 1, 1);
field7 := regexp_substr(parse_spec(l_item_nt(k)),'[^*]+',1,5);
when l_item_nt(k) like '%*PE*%*ZZ*%' then
field8:= regexp_substr(regexp_substr(parse_spec(line),'[^*]+',1,5),'[^ ]+',1,1)
field9 := regexp_substr(regexp_substr(parse_spec(line),'[^*]+',1,5),'[^ ]+',1,2);
when l_item_nt(k) like 'SE*%' then
insert into t1(field1,field2,field3,field5,field6,field7,field8,field9)
-- values(field1,field2,field3,field5,field6,field7,field8,field9);
else
dbms_output.put_line ('end of line');
end case;
end loop;
end if;
end loop;
utl_file.fclose(l_out_file);
exception
when no_data_found then
dbms_output.put_line('No data found');
end;I would not use regular expressions for parsing as it is CPU intensive - and standard string processing suffices.
I would break the EDI up into lines. I would tokenise each line. I then have 2d array that can be referenced to find a specific field. E.g. line x and token y is field abc.
Basic approach:
SQL> create or replace type TStrings as table of varchar2(4000);
2 /
Type created.
SQL> -- create a parser that tokenises a string
SQL> create or replace function Tokenise(
2 csvLine varchar2,
3 separator varchar2 default ',',
4 enclosedBy varchar2 default null
5 ) return TStrings is
6 strList TStrings;
7 str varchar2(32767);
8 i integer;
9 l integer;
10 enclose1 integer;
11 enclose2 integer;
12 encloseStr varchar2(4000);
13 replaceStr varchar2(4000);
14
15 procedure AddString( line varchar2 ) is
16 begin
17 strList.Extend(1);
18 strList( strList.Count ) := Replace( line, CHR(0), separator );
19 end;
20
21 begin
22 strList := new TStrings();
23
24 str := csvLine;
25 loop
26 if enclosedBy is not null then
27 -- find the ennclosed text, if any
28 enclose1 := InStr( str, enclosedBy, 1 );
29 enclose2 := InStr( str, enclosedBy, 2 );
30
31 if (enclose1 > 0) and (enclose2 > 0) and (enclose2 > enclose1) then
32 -- extract the enclosed string
33 encloseStr := SubStr( str, enclose1, enclose2-enclose1+1 );
34 -- replace the separator char's with zero char's
35 replaceStr := Replace( encloseStr, separator, CHR(0) );
36 -- and remove the enclosed quotes
37 replaceStr := Replace( replaceStr, enclosedBy );
38 -- change the enclosed string in the big string to the replacement string
39 str := Replace( str, encloseStr, replaceStr );
40 end if;
41 end if;
42
43 l := Length( str );
44 i := InStr( str, separator );
45
46 if i = 0 then
47 AddString( str );
48 else
49 AddString( SubStr( str, 1, i-1 ) );
50 str := SubStr( str, i+1 );
51 end if;
52
53 -- if the separator was on the last char of the line, there is
54 -- a trailing null column which we need to add manually
55 if i = l then
56 AddString( null );
57 end if;
58
59 exit when str is NULL;
60 exit when i = 0;
61 end loop;
62
63 return( strList );
64 end;
65 /
Function created.
SQL>
SQL>
SQL> declare
2 ediDoc varchar2(32767) :=
3 'ISA*00* *00* *ZZ*043000096820 *ZZ*2156833510 *131202*0710*U*00401*000001204*0*P*>\GS*RA*043000096820*2156833510*131202*0710*1204*X*003020\ST*820*000041031\BPR*X*270*C*ACH*PPD*01*101036669***9101036669**01*031000053*DA*00000008606086714*131202\TRN*1*101036661273032\DTM*007*131202\N1*1U*BPS\N1*BE*MICHAEL DRAYTON*34*159783633\N1*PE*BPS*ZZ*183383689C2 ABC\N1*PR*ABC TREAS 310\SE*9*000041031\ST*820*000041032\BPR*X*686*C*ACH*PPD*01*101036669***9101036669**01*031000053*DA*00000008606086714*131202\TRN*1*101036661273034\DTM*007*131202\N1*1U*BPS\N1*BE*SAMIA GRAVES*34*892909238\N1*PE*BPS*ZZ*184545710C5 ABC\N1*PR*ABC TREAS 310\SE*9*000041032\';
4
5 lines TStrings;
6 tokens TStrings;
7 begin
8 -- split EDI string into lines
9 lines := Tokenise( ediDoc, '\' );
10
11 -- process line and extract fields
12 for i in 3..lines.Count loop
13 dbms_output.put_line( '***********************' ) ;
14 dbms_output.put_line( 'line=['||lines(i)||']' );
15 tokens := Tokenise( lines(i), '*' );
16
17 for j in 1..tokens.Count loop
18 dbms_output.put_line( to_char(j,'00')||'='||tokens(j) );
19 end loop;
20 end loop;
21 end;
22 /
line=[ST*820*000041031]
01=ST
02=820
03=000041031
line=[BPR*X*270*C*ACH*PPD*01*101036669***9101036669**01*031000053*DA*00000008606086714*131202]
01=BPR
02=X
03=270
04=C
05=ACH
06=PPD
07=01
08=101036669
09=
10=
11=9101036669
12=
13=01
14=031000053
15=DA
16=00000008606086714
17=131202
line=[TRN*1*101036661273032]
01=TRN
02=1
03=101036661273032
<snipped> -
Whats the best way to get a big text file in a CLOB variable?
Hi,
I have a very premitive type of question.
I have a big text file, say 30 MB, in a Unix directory (Solaris). I want to get the whole text of that file in a CLOB variable.
I saw the procedure dbms_lob.loadfromfile/loadclobfromfile. In both these cases, according to the documentation, the target where is collect the data will be a BLOB and not a CLOB. So, I have to convert that blob into a clob.
If I want to avoid all this conversion process, whats the best way to get a text from a file into a CLOB variable?
Please suggest.
RegardsIn addition, LoadFromFile is overloaded to handle both BLOB and CLOB:
PROCEDURE LOADFROMFILE
Argument Name Type In/Out Default?
DEST_LOB BLOB IN/OUT
SRC_LOB BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT
<BR>
PROCEDURE LOADFROMFILE
Argument Name Type In/Out Default?
DEST_LOB CLOB IN/OUT
SRC_LOB BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT -
Read incoming EDI File content and FTP file on R/3 server based on value
Hi,
We have the below scenario:
The incoming file is received in XI in the below directory:
/usr/feeders//interfaces/EP1/abc
The file name is- TCDE.BLQSAM.OCAA2682.C0084031
The file contains some data like below:
UNBUNOA:3HEXAGON-ABCABC10268002090806:1004+403140015324'
UNH1CONTRL:2:2:UN:APACS'
UCI1000284217ABC10268002HEXAGON-ABC7+C00'
Based on this incoming file reference number in line 3 as given (1000284217) for example, a lookup needs to be made in R/3 in a table to determine if the file should be placed in directory A or Directory B in R/3 without any XML conversion.
I have made the scenario and the details are as below:
Created the new Mapping Archive in the IR and import this .jar
Created an Interface mapping for the Control File processing and select the mapping program from the archive
Created a Business Service called "BSY_ECC6_FI_CENTRAL" and a communication channel called "CCIA_01_RFC_RECEIVER", for the connection to the R/3 system of type RFC and will have to have the connection settings for the R/3 backend with the client which has the data in it for the FM call.
I have the java code that I can forward you for reference.
I am not able to run the scenario successfully.
Plaese advise as to how I can develop this scenario.
Regards,
ArchanaHi Archana,
Based on this incoming file reference number in line 3 as given (1000284217) for example, a lookup needs to be made in R/3 in a table to determine if the file should be placed in directory A or Directory B in R/3 without any XML conversion.
Created the new Mapping Archive in the IR and import this .jar
Created an Interface mapping for the Control File processing and select the mapping program from the archive
Created a Business Service called "BSY_ECC6_FI_CENTRAL" and a communication channel called "CCIA_01_RFC_RECEIVER",
for the connection to the R/3 system of type RFC and will have to have the connection settings for the R/3 backend with the
client which has the data in it for the FM call.
What i understand from your Qs is, you want to get the location where the file need to be placed from the table in R/3 system
based on the ref. no mentioned in source EDI file, and the target file should be placed as a flat file format.
You are using RFC lookup to get the details of the location in Java mapping, Once you have the location you can map it to the
element in payload and using varaible substitution you can specify the target directory.
Regards,
Prasanna -
Problem with Sender Agreement for EDI File to Idoc scenario
I'm configuring PI for EDI with Seeburger Adapter (Calling as a Module) and I'm having an issue with the Sender Agreement using File Adapter.
Process used is File to IDOC. EDI data will be picked up from VAN (Using existing FTP process rather than using Seeburger FTP) and stored in a folder which is being accessed by PI to send to R/3 to create orders.
All my inbound EDI will be stored in same folder which should be picked up by XI and distribute the same depending upon the respective scenario's in ID and respective mapping/config in IR.
The whole process IR & ID works fine and also creates Idoc in R/3, if I configure for one customer for EDI 850, but when I try to configure for second customer for same EDI 850 having same ANSIX12 version (V4010) as previous customer, I get stuck at the Sender Agreement part for this second customer because I use the same CC for File read for both the customers (Scenarios) and since there is a limitation with File Adapter "sender channel must not be assigned to more than one sender agreement ".
How can I create the Sender Agreement using the same CC for my other scenario?
I tried creating multiple CC for different scenario but when I place a test file for customer A, I see that its being picked up by both CC's.
Pl Advise.
Thanks!
PSRYou need to configure splitter as module in sender file adapter (classifier->bic->splitter) as well as define a message splitter(with partner number and Seeburger mapping) in Seeburger workbench.
Thank you for the reply Aamir,
Do you have any document which can guide me through the process?
Does Seeburger Workbench play any role here? because I'm not using See FTP adapter to connect to my VAN. We get the data from the VAN using FTP process but not using See FTP. I'm using BIC to generate an XSD and SDA file, rest everything is in XI using File to idoc and IDOC to file process.
Thx
PSR -
Unable to process inbound EDI docs from TP-multiple Host ID's,1 transaction
Issue:
Unable to process inbound EDI documents from trading partners
(Same doctype and revision, but diff receiver ID’s for host)
Host: ISA ID’s are HOSTA, HOSTB
Transaction: X12, 210, 5010
Trading Partner A: sends EDI document with these values
Interchange Sender ID: TPA
Application Sender's Code: TPA
Interchange Receiver ID: HOSTA
Application Receiver's Code: HOSTA
B2B setups are as below
Business action: Process_210
Operational Capability for Trading Partner A : Process_210_Initiator It has
Interchange Sender ID as TPA
Interchange Receiver ID as TPA
Application Sender's Code: TPA
Application Receiver's Code: TPA
This creates a Process_210_Responder for HOST
It has
Interchange Sender ID as HOSTA
Interchange Receiver ID as HOSTA
Application Sender's Code: HOSTA
Application Receiver's Code: HOSTA
Validated Agreement and deployed, Result is success and everything works fine until here
Note: B2B validates taking everything from Process_210_Initiator except the Interchange Receiver ID that it gets from the Process_210_Responder
New Trading Partner B also sends us an X12, 210, 5010 but he uses Receiver ID as HOSTB
Trading Partner B: sends EDI document with these values
Interchange Sender ID: TPB
Application Sender's Code: TPB
Interchange Receiver ID : HOSTB
Application Receiver's Code: HOSTB
B2B setups are as below
Business action: Process_210
Operational Capability for Trading Partner B : Process_210_Initiator It has
Interchange Sender ID as TPB
Interchange Receiver ID as TPB
Application Sender's Code: TPB
Application Receiver's Code: TPB
This doesn’t create a new Process_210_Responder for HOST It has
Interchange Sender ID as HOSTA
Interchange Receiver ID as HOSTA
Application Sender's Code : HOSTA
Application Receiver's Code : HOSTA
Validated Agreement and deployed, Result the document fails with error
Validation of Interchange parameters failed. Please verify all the Interchange parameters in the B2B configuration match the Group parameters in the message. Make sure that the ecs file for this Interchange is valid
Upon looking at the log file it fails, as the Interchange Receiver ID in data is HOSTB where as in Process_210_Responder it is setup as HOSTA
Work Around that we tried, but could not succeed
Create a new business action called Process_210_HOSTB, created a new Document Protocol Revision X12_5010_HOSTB,Created a doc type 210 version 5010 under that
Used this new Business action for Trading Partner B so the new setups look like this
Business action : Process_210_HOSTB
Operational Capability for Trading Partner B : Process_210_HOSTB_Initiator It has
Interchange Sender ID as TPB
Interchange Receiver ID as TPB
Application Sender's Code : TPB
Application Receiver's Code : TPB
This creates a new Process_210_HOSTB_Responder for HOST It has
Interchange Sender ID as HOSTB
Interchange Receiver ID as HOSTB
Application Sender's Code : HOSTB
Application Receiver's Code : HOSTB
Validated Agreement, but could not deploy as I was getting AIP-11016 SQL error , may be integrity constraint issue
Note: I was able to deploy this agreement if I change the Document Type from 210 to something else like 210_new, but since the document is EDI I can’t have the Document Type as anything except 210Ramesh,
Sorry for the delay , but this was the first thing I tried and it didn't work, I tried again just to be sure, it didn't work I am getting this error
When group Receiver ID didn't match
"Validation of Group parameters failed. Please verify all the Group parameters in the B2B configuration match the Group parameters in the message. The following parameters do not match the configured parameters in B2B"
In addition, when Interchange Receiver ID did not match
"Validation of Interchange parameters failed. Please verify all the Interchange parameters in the B2B configuration match the Group parameters in the message. Make sure that the ecs file for this Interchange is valid"
Here is the log file extract
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:ISelectorImpl Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:ISelectorImpl validateEnvelope = true
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:ISelectorImpl Leave
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Return = oracle.tip.adapter.b2b.document.edi.ISelectorImpl@12d8ecd
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Param Name = SeverityConfig
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Value = null
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Return = oracle.tip.adapter.b2b.document.edi.ISelectorImpl@1fa5e5e
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:reset Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:reset Leave
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Return = oracle.tip.adapter.b2b.document.edi.ISelectorImpl@497062
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup Enter
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = InterchangeReceiverQual, val = [02]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [02]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = InterchangeSenderID, val = [REMOTETP]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [REMOTETP]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = InterchangeReceiverID, val = [SLCY]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [SLCY]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = Standard, val = [X12]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [X12]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = InterchangeControlVersion, val = [00200]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [00200]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = ec_DataNodeName, val = [Interchange]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = InterchangeSenderQual, val = [02]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [02]
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup return = true
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup return = true
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Param Name = ecsFileKey
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Value = 60DD87849FFE4147BFCEB66842A33298-26-1-4
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValueBlob Param Name = ecsOptFileBlob
2008.07.28 at 14:31:24:917: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValueBlob Param Name = ecsFileBlob
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getStream Enter
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getStream Leave
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Param Name = SeverityConfig
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Value = null
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:setControlNumber sName = Interchange, controlNumber = 210011217
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:setControlNumber return = true
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Param Name = TPName
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Value = RemoteTP
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit Enter
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit NodeGUID = {156BEDFC-931E-4923-840D-3AC0BAB670F2} position = 0
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit Leave
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Enter
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:cloneSelector Return = oracle.tip.adapter.b2b.document.edi.ISelectorImpl@1b5c22f
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup Enter
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = GroupReceiverID, val = [STMSLCY]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [SLCY]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup Value and doc parameter don't match2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = GroupVersionNumber, val = [005010]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [005010]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = ec_DataNodeName, val = [Group]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup key = GroupSenderID, val = [REMOTETP]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup param = [REMOTETP]
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup return = false
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doLookup return = false
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Param Name = TPName
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:getValue Value = RemoteTP
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit Enter
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit getLookUpError Key = key = [GroupReceiverID] value = [STMSLCY] param = [SLCY] Value = null
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit NodeGUID = {6EE88EFC-B084-4FA8-8EE8-8C7BD397E9F1} position = 0
2008.07.28 at 14:31:25:011: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.document.edi.ISelectorImpl:doCommit Leave
2008.07.28 at 14:31:25:073: Thread-10: B2B - (DEBUG) iAudit report :
Error Brief :
5082: XEngine error - Guideline look-up failed. -
Vat code change, EDI file number finding and EDI file structure chage?
Hello Gurus
Our client has a plant in Europe, which has a largest supplier. We process electronic invoices to the vendor through a provider OB10 ( private company - invoicing provider ).
In the transfer of the electronic data to the invoice posting, a VAT code is added to the details, that appears to be pulling from a certain Table in the system.
I want to know from which tables this field has pulled up to the Invoice?
In continuation of the process ...I have come across an issue on EDI file structure change. I have provided with the the Idoc numbers of above invoices, from the idoc numbers i need to find out the EDI file number. But when i went to WE02, WE05 with those idoc numbers i couldn't find the EDI file number( Interchange file number ref).
How can i find the EDI file number and i have to suggest the EDI team for changing the file structure in regard to the VAT code updating according to the Plants abroad function.
What are the things i need to suggest them exactly in regard to this?
Please reply me ASAP...
Thanks
MallikThe table for tax code is T076M - maintainable using T code OBCD. For EDI file number, execute T Code WE02 - enter IDoc number and execute (F8). In the right window pane, choose select layout -> change layout and pick up the field Interchange file reference. Guess this is what you are looking for.
OR
Go to transaction WE02 or WE05 enter Idoc number and choose execute. When Idoc data is displayed double click on Control Record in left pane. Choose Details tab. Interchangable file under References.
You can also refer the entries in table EDIDC.
Reference to interchange file:
This field contains the reference number of the interchange file in which the EDI message was transmitted. -
Building big XML file from scratch - Urgent
Oracle 8.1.7.3 on windows NT platform
What is the best way to generate a quiet big XML file from multiple tables ?
I have information stored in many relational tables from which I need to generate a XML flat file either stored in a CLOB field or in a text file in a system directory. This XML file will be then used
as an input to generate a report either in HTML using XSLT, or in a PDF file using apache-fop or in a MS Excel file using SoftArtisan ExcelWriter.
My XML file has many levels in it structure, I mean that it is composed of one root element with 2 children, each children has a 3 children. One on these 3 children has 2 children and so on. Actually there are more or less 10 nested levels.
To generate this XML file, I tried to use XSU for PL/SQL with the nested cursor() feature plus XSLT to transform the raw XML file to my requirements.
But obviously there are some limitations using this method. Particularly, if the inner cursor returns an empty set I get exhausted resultset java error... A TAR confirmed that limitation.
So I had to give up this method to use basic nested PL/SQL cursors. Each fetched row is then inserted into a table (varchar2) with a sequence number so that with a cursor like select xml_chunk from my_table order by sequence, I get the whole XML file that I save either in a flat file or in a CLOB (using append method).
This method works fine, but it takes time and it's not flexible at all as I have to construct each XML tag. I guest this way of proceeding is not the more efficient...
Using DOM method won't be better as I still need PL/SQL cursor to select each level of my XML structure and in addition I might for sure encounter a problem of memory.
So what solutions would you suggest to generate this XML file. It must be quiet fast. The XML file can be up to 2Mo big. My system is actually a kind of on-the-fly reports generation. I mean that the XML file needs to be created with up-to-date data many times during the working hours !
Quick answers or suggestions would be greatly appreciated. It's very urgent !!
ThanksI looks like the best way is to using the SAX processing for your application? Do you know the DTD or XML schema of your output XML document?
Would you send me the sample code for the method "to use XSU for PL/SQL with the nested cursor() feature plus XSLT to transform the raw XML file" to reproduce the problem? -
Hi,
I have a requirement where i need to batch files from different trading partners which are in EDI format. I was referring to Oracle documentation and it is mentioned there that we can not do batching of EDI files unless it is changed to xml.
Anyone have any idea how and where we can transform these edi files to xml and process it?
Thanks,
OraThere is no option to batch the native documents in B2B.
Here is one option which you can think of: process the EDI message in inbound direction and it will translate to XML and then later schedule a batch in outbound direction where all these xmls can be batched and translated to native (EDI format) and sent across to the partner.
Regards,
Dheeraj -
Hello,
I am getting more and more error:
SMS Software Inventory Processor failed to process the file C:\Program Files (x86)\Microsoft Configuration Manager\inboxes\auth\sinv.box\JP98C7JM.SIC because it is larger than the defined maximum allowable size of 5000000.
let me what should I do? decrease the information collected? but it is always the field not collected the management needs and always for yesterday ...
Exclude the MP (I have only 2) using http://technet.microsoft.com/en-us/library/hh691018.aspx
Should I keep several version of the MOF files depending on the request from the Management but if so this will add some delays before the new MOF is compiled and then run by the next inventory..., isn't it?
Thanks,
DOm
System Center Operations Manager 2007 / System Center Configuration Manager 2007 R2 / Forefront Client Security / Forefront Identity ManagerHello,
the size is already really big "5,000,000" ...
Apparently the classes in cause are:
Start Group
Name = "CCM Recently Used Applications"
ID = 3174
Class = "MICROSOFT|CCM_RECENTLY_USED_APPS|1.0"
Pragma = "SMS:UPDATE"
Start Group
Name = "Software Shortcut"
ID = 2
Class = "MICROSOFT|SOFTWARE_SHORTCUT|1.0"
Pragma = "SMS:DELETE"
Thanks to Sherry for the TIP as effectively the big MIF files are Citrix...
http://www.myitforum.com/forums/CCM_Recently_Used_Apps-Asset-Intelligence-Do-you-enable-it-m221190.aspx
Any other idea?
Thanks,
Dom
System Center Operations Manager 2007 / System Center Configuration Manager 2007 R2 / Forefront Client Security / Forefront Identity Manager -
How to process Idoc status file within Sap?
Hi All,
We would like to process received status file to update the sent IDOC's. Our current setup is that we send/push the Outbound Idoc to external EDI sub system and pull the status file for processed Idoc from external EDI system to our R/3 server.
Sap Documentation explains the scenario, where this process is triggered from external system using startrfc program, whereas our scenario is to trigger the status update process, once the file is pulled to our system from unix using edi_status_incoming function module.
Your anwers are much appreciated.
Kind Regards,
SandhyaHi Sandhya,
Once the Idocs are sent to the EDI Subsystem, the SAP will have the status that the Idoc has reached the partner sub system. I hope, the workflow should be able to trigger back the status file to the SAP System after the Idoc is processed at the EDI Subsystem.
Please check with the workflow that is attached.
Else, if this is using the FM or Message Control, then check the configuration under MN04.
I'm also trying to find the solution for the same.
Regards,
-Syed. -
Processing length specific file in XI
Hi All,
Is it possible to process lenghth specific file in XI.
Can any one gives some idea how to do that.
If I have a very big file like this and want to test mapping by taking that file as input.
Is it possible or do we need to convert that file into XML format and need to test it..
Regards,
venu.Hi Bavesh,
Still I'm getting runtime exception in mapping transfermation.
Following is the file
"V00",10,"venu",144857,77,29
"A11","ARC",240904,20050,9
"A12","ARC",12345,990,9
"A27","Va2440094"
Following is the payload in SXMB_MONI view
<?xml version="1.0" encoding="utf-8" ?>
- <ns:FILEINPUTCSV xmlns:ns="urn://f1send">
- <Root>
- <H1>
<F1>"V00"</F1>
<F2>10</F2>
<F3>"venu"</F3>
<F4>144857</F4>
<F5>77</F5>
<F6>29</F6>
</H1>
- <sub1>
<KF>"A11"</KF>
<S12>"ARC"</S12>
<S13>240904</S13>
<S14>20050</S14>
<S15>9</S15>
</sub1>
- <sub2>
<KF>"A12"</KF>
<S22>"ARC"</S22>
<S23>12345</S23>
<S24>990</S24>
<S25>9</S25>
</sub2>
- <sub3>
<KF>"A27"</KF>
<S32>"Va2440094"</S32>
</sub3>
</Root>
</ns:FILEINPUTCSV>
Following is the error in SXMB_MONI
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Request Message Mapping
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
<SAP:P1>com/sap/xi/tf/_FILE_TO_FILE_CSV_</SAP:P1>
<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
<SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>During the application mapping com/sap/xi/tf/_FILE_TO_FILE_CSV_ a com.sap.aii.utilxi.misc.api.BaseRuntimeException was thrown: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Following is the Adapter configuration
Document Name FILEINPUTCSV
DocumentNamespace urn://f1send
Recordsetname Root
Recordsetstructure H1,1,sub1,,sub2,,sub3,*
Recordsets per msg *
Key Field name KF
H1.fieldNames F1,F2,F3,F4,F5,F6
H1.fieldSeparator ,
H1.endSeparator 'nl'
H1.processFieldNames fromConfiguration
sub1.fieldNames KF,S12,S13,S14,S15
sub1.fieldSeparator ,
sub1.endSeperator 'nl'
sub1.processFieldNames fromConfiguration
sub2.fieldNames KF,S22,S23,S24,S25
sub2.fieldSeparator ,
sub2.endSeparator 'nl'
sub2.processFieldNames fromConfiguration
sub3.fieldNames KF,S32
sub3.fieldSeparator ,
sub3.endSeparator 'nl'
sub3.processFieldNames fromConfiguration
H1.keyFieldValue "V00"
sub1.keyFieldValue "A11"
sub2.keyFieldValue "A12"
sub3.keyFieldValue "A27"
Exactly where I'm doing.
Do we need to check any service pack updates..If that case how to check whate exactly need to check and where I need to check. In system status I'm not getting all components updation like Adapters, Integration servers..etc
Regards,
venu.
Maybe you are looking for
-
Hi What is the use of multiple template in BIP Report. Can we print multiple template at a time. If no, then why they have given this facility of multiple template. Mash
-
Hi I have my Dad's apple ID etc, but he has an iphone and i have an Ipod Touch then on IMessage i can read all the messages he recieves and sends and he can read all the messages i send and recieve how do i stop this? But i still want to send message
-
Can't import small movie sequences from still (mov) Cameras
Hi In iPhoto I've got photos but also small movie sequences. Trying to use some of them in my test project - doesn't seems to work. Can't just drop them from media/iPhoto into the new project. Any other way that might work ?? Yours Bengt W
-
Hello, I have 2 queries shown in a workbook. The top one is a hierarchy. The bottom one is a Calculate KF displayed in Rows. When launched, this workbook will show the top query in expanded form. The query below is also shown. But when I collapse one
-
Hi, i just realize my disk player is not working, can anyone help
Hi, i just realize my disk player is not working at all, i have never use it to watch cd or dvd, now i am trying to install a norton internet security 2012, after i put in the cd, there is no respond, can someone help, please This question was solved