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

  • Processing big edi file

    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,
    Raghav

    Hi 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.
    Regards

    In 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,
    Archana

    Hi 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!
    PSR

    You 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 210

    Ramesh,
    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
    Mallik

    The 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 !!
    Thanks

    I 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?

  • Batching of EDI files

    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,
    Ora

    There 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

  • Big SIC files?

    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 Manager

    Hello,
    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,
    Sandhya

    Hi 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