JDBC to IDOC scenario - Mapping problem with E1FIBSEG

Hi friends,
I have problem when generate multiple Idocs (FIDCC1) an multiple positions based on an External Definition for a SQL Server table. I have selected all fields from this table from a SELECT into the JDBC configuration.
My mapping is like this:
DWCAJA.ResultSet  1..1
     IDOC.
Thats ok and generate n IDOCs by every change of PK.
The problem is when i want to map positions because i dont have any field in source message to identify the number of positions to map with E1FISEG.
If I have two differents Pks and n rows, the result of testing is as folow:
FIDCC1
  IDOC
     E1FIKPF
         E1FISEG
         E1FISEG
  IDOC
        E1FIKPF
I cant obtain n BSEG segments according PK. I've mapped and all fields of row segment but those are created in the first IDOC node only,
Any suggestions?
Regards,
Pablo.-

Important: Primary key : DWSucCod + DWCajSec
Payload:
- <row>
  <DWSucCod>11</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100001</DWCtaConCo>
  <DWRecImp>100</DWRecImp>
  </row>
- <row>
  <DWSucCod>11</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100002</DWCtaConCo>
  <DWRecImp>200</DWRecImp>
  </row>
Result:
IDOC
   E1FIKPF
     E1FISEG
         hkont :1100001
         dmbtr : 100
     E1FISEG
          hkont :1100002
         dmbtr : 200
Payload:
- <row>
  <DWSucCod>11</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100002</DWCtaConCo>
  <DWRecImp>200</DWRecImp>
  </row>
- <row>
  <DWSucCod>12</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100003</DWCtaConCo>
  <DWRecImp>300</DWRecImp>
  </row>
Result:
IDOC
   E1FIKPF
     E1FISEG
         hkont :1100002
         dmbtr : 200
IDOC
   E1FIKPF
     E1FISEG
         hkont :1100001
         dmbtr : 300
Payload:
- <row>
  <DWSucCod>11</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100001</DWCtaConCo>
  <DWRecImp>100</DWRecImp>
  </row>
- <row>
  <DWSucCod>11</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100002</DWCtaConCo>
  <DWRecImp>200</DWRecImp>
  </row>
- <row>
  <DWSucCod>12</DWSucCod>
  <DWCajSec>1</DWCajSec>
  <DWCtaConCo>1100003</DWCtaConCo>
  <DWRecImp>300</DWRecImp>
  </row>
Result:
IDOC
   E1FIKPF
     E1FISEG
         hkont :1100001
         dmbtr : 100
     E1FISEG
         hkont :1100002
         dmbtr : 200
IDOC
   E1FIKPF
     E1FISEG
         hkont :1100003
         dmbtr : 300

Similar Messages

  • Mapping issue in jdbc to idoc scenario

    Hi
    we have a  jdbc to idoc scenario , we need to repeat the segment given below which has only two fields FLDGRP  and FLDVAL,
    both filed_Group and fieldgroup1 is coming simultaneously . when field group =BATCH, batch=FLDVAL and fieldgroup1=CUST cust_code=FLDVAL
    mapping is as follows :
    E1WXX01 (segment name) occurance 0:9999999999                                     
    fieldgroup----
    > FLDGRP
    batch----
    >FLDVAL
    fieldgroup1----
    >FLDGRP(same filed as above )
    cust_code----
    >FLDVAL(same filed as above)
    pl sugggest how to map using graphical mapping
    rgds
    arun

    I see the problem here... hmmm.. It is simple
    You need to just duplicate the E1WXX01 segment by right clicking and pressing Duplicate Subtree.
    Once you do duplication of segment then you will have two segments of E1WXX01.
    In first segment map
    > fieldgroup----
    > FLDGRP
    > batch----
    >FLDVAL
    and in second segment of E1WXX0, map
    > fieldgroup1----
    >FLDGRP
    > cust_code----
    >FLDVAL
    Regards,
    sarvesh

  • For Michal Krawczyk - JDBC to IDoc Scenario

    Hi Michal,
    I am trying to run JDBC to IDoc scenario and somehow my mapping is not getting executed and because of that at receiver side IDoc is not getting LIFNR value which should come from  Database table and as a result i am getting error 51 on posting the IDoc...
    Mr Reddy suggested me to go through your blog i.e
    /people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
    After going through this blog i figured out that when i am trying to check the mapping as per way mentioned in the blog i am receiving the error "java.lang.NullPointerException"..But i am getting this error even for those scenarios also which are working fine on checking the mapping suggested by you.
    Can you suggest something...
    It would be better for you to understand my scenario if you will go through this thread also :
    https://www.sdn.sap.com/irj/sdn/forums

    hi Santosh,
    1. this is not a private forum - post to <b>everyone</b> so everyone will be have a look -<b> this way you will get more answers</b>
    2. if you want my direct help contact me by e-mail and I will contact you with my team leader and I will repair your XI problem then
    thanks for understanding
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Error while executing a JDBC to Idoc scenario : No standard agreement found

    Hello SAP PI Gurus, 
    I am having a JDBC to idoc Scenario .And the interface is running at 10 min of duration. 
    <SAP:AdditionalText>No standard agreement found for ,
    BS_EXT_CTBSREPDB, , BS_ERPQAS_QE1_320, http://XYZ.com/FI/FI_FI_01/Charges, FIDCC2</SAP:AdditionalText>.
    While i test the configuration...i get an error in reciever agreement as mentioned above.
    Can you pls help me in resolving this issue.
    Regards,
    Ravi

    Hi,
        I think the problem is with namespace....for IDOC the namespace will be "urn:sap-com:document:sap:idoc:messages"...but in your case it is different.....i.e http:....etc.....please check whether you 've used the same IDOC withe above mentioned namespace in all the configuration objects like interface determination, receiveragreement etc.....
    Thanks
    Priyanka

  • IDoc to JDBC  and JDBC to IDoc Scenario

    Dear All,
    I am working on IDoc to JDBC and JDBC to IDoc Scenario.
    I have to send Idoc from SAP to Non SAP system(.NET application) i almost configured in XI but still i don't know when my INTEGRATION will INVOKE how my data will proceed from IDOC to Oracle database(Through JDBC) and in case of revese how and when Data flow will start.
    Does anyone have completed STEP by STEP scenario document for this?
    How my Idoc will sent to XI?
    How XI will pick up data from IDoc?
    How XI will Convert data to JDBC and UPDATE in Oracle Database?
    And i reverse case(JDBC to IDoc) when my INTEGRATION will INVOKE?
    Where and When i can watch my process and data?
    How can i test the whole integration?
    I AM GETTING ERROR WHILE TESTING CONFIGURATION IN Integration Directory "Error while refreshing the XI runtime cache" and when i check this in SXI_CACHE  it gives me error
    "Unable to refresh cache "NO_BUSINESS_SYSTEM"
    "Error during last refresh to cache"LCR_GET_OWN_BUSINESS_SYSTEM - NO_BUSINESS_SYSTEM"
    Please solve all the above problems i will reward u points
    thanks,
    RP

    Hi,
    While we working on IDOC to JDBC interface..
    We have to deploy JDBC Drivers?
    Go through this links,
    /people/varadharajan.krishnasamy/blog/2007/02/27/configuring-jdbc-connector-service-to-perform-database-lookups
    http://searchsap.techtarget.com/tip/0,289483,sid21_gci1246926,00.html
    To install JDBC driver follow the how to guide.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-how-to-guides/how%20to%20install%20and%20configure%20external%20drivers%20for%20jdbc%20and%20jms%20adapters.pdf
    Configuration of JDBC Adapter for SQL Server
    JDBC Driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
    Connection = jdbc:microsoft:sqlserver://hostname:<port>;DatabaseName=<DBName>
    UserID and Password.
    If the connection is not working find the correct port number.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40b92770-db81-2a10-8e91-f747188d8033
    JDBC- X I -  R/3 Scenario
    /people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
    /people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
    Please check the driver path as mentioned below.
    JDBC Driver : sun.jdbc.odbc.JdbcOdbcDriver
    Connection:jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=//location of DB table.mdb;
    No JDBC driver required.
    Receiver JDBC scenario MS access - /people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
    follow this thread
    Re: Problem when connecting to MS Access through JDBC Adapter.
    SAP Note 850116 has details
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    Configuring the Sender JDBC Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/1d/756b3c0d592c7fe10000000a11405a/content.htm
    Configuring the Receiver JDBC Adapter
    http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm
    Idoc Reveiver adapter..
    http://help.sap.com/saphelp_erp2004/helpdata/en/b9/c5b13bbeb0cb37e10000000a11402f/content.htm
    Thanks,
    Satya Kumar
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    Edited by: SATYA KUMAR AKKARABOYANA on May 8, 2008 5:51 PM

  • JDBC to IDOC Scenario

    Hi Experts,
              I have tried JDBC to IDOC Scenario but it is giving No Segments Found Exception. I don't know where I am doing the mistake.
           can any body please send me a pdf document for JDBC TO IDOC Scenario with step by step procedure from scratch (including creation of LS,LI etc)
    Thanks in Advance,
    Murthy

    Hi Murthy
    The steps are pretty much the same as any other scenario with some exceptions
    1: You import the IDOC structure from the R/3 System. This acts as the DT, MT and MI.
    You also need to do some configurations on the ABAP Stacks of sender and XI system.
    Sender:
    WE20 Partner Profiles
    SM59 RFC Destination
    XI:
    SM59 RFC Destination
    IDX1 Ports
    IDX2 This is the metadata repository so you wont necessarily need this.
    Also because you IDOCs can be sent directly to the ABAP stack/Integration Server you do not need a sender comm channel or sender agreement.
    The rest is pretty much as any other scenario.
    Please see the below links
    /people/prateek.shah/blog/2005/06/08/introduction-to-idoc-xi-file-scenario-and-complete-walk-through-for-starters
    IDOc testing - /people/suraj.sr/blog/2005/12/29/generate-test-case-for-an-idoc-scenario
    idoc settings /people/ravikumar.allampallam/blog/2005/02/23/configuration-steps-required-for-posting-idocsxi
    idoc mapping - /people/james.guanzon/blog/2006/03/23/how-to-support-industry-standards-in-xi-part-ii-of-iii--mapping
    Cheers..
    Vasu
    <u>** Reward Points if found useful **</u>

  • JDBC to IDOC Scenario - select data in jdbc based on multiple conditions

    Hello
         I have a JDBC to IDOC Scenario. I have to select the records in JDBC based on different conditions each time. For example I have to select based on company code '1000' and Employee claasification 'E1' and date range. After I post these records in SAP again I want to select other records for some other company code '2000' and different business area and different dates. Basically I want to extract data multiple times based on different conditions.
    Hiow do I achieve this?
    Another question is in the JDBC to IDOC scenario since the sender adapter is JDBC and the sender adapter polls depending on the duration of time ( say 60 secs ) in the adapter once after I extract the data based on a condition how do I control in such a way that the same data is not extracted again.
    Thanks
    Naga

    Hi Naga,
    I have to select the records in JDBC based on different conditions each time. For example I have to select based on company code '1000' and Employee claasification 'E1' and date range. After I post these records in SAP again I want to select other records for some other company code '2000' and different business area and different dates. Basically I want to extract data multiple times based on different conditions.
    -->
    Such requirements cant be handle through select query of the sender...but you can handle this in the message mapping area.....you can fire a select query in the database to pick up records in a batch of 10K (do not keep any condition on this except for sorting). After the records come into PI you can send the message to your target based on the unique combination of "Company code+ Employee clasification + date range" handling this in the message mapping.
    Another question is in the JDBC to IDOC scenario since the sender adapter is JDBC and the sender adapter polls depending on the duration of time ( say 60 secs ) in the adapter once after I extract the data based on a condition how do I control in such a way that the same data is not extracted again.
    You can use the N--> C logic
    The data records that you pick have a corresponding control table i assume. There should be a field STATUS where the initial status of record should be N.
    After you pick the records this status should be made C so that only those records present in the database with status = N are picked up.
    Mention the condition Status = N in the select query.
    Thanks
    Dhwani

  • Deleting data from a table(JDBC to IDOC scenario).

    Hi,
    For JDBC to IDOC scenario, the requirement is as explained below:
    1: There are 2 tables-> GDDB and CHANGES
    2: Poll the CHANGES table every 30 mins everyday.
    3: a)Publish the records for which the 'published' flag status is 'N'
       b)Update the status as 'Y' after publishing.
    4: On the first day of every month, delete the records from the CHANGES table if the record is 3 months old and 'published' status is 'Y'
    I would like to know how  update and delete can be done using one JDBC adapter?
    Regards,
    Vishal.P.Kulkarni

    Hi,
    update:
    there is a field in the sender jdbc adapter - SQL statement for update - put it there
    delete - On the first day of every mont
    create a job on the database which will trigger the delete statement
    it does not/ should not have to be done with XI
    Regards,
    Michal Krawczyk

  • Mapping problem with compressed key update record

    Hi, could you please advise?
    I'm getting the following problem:
    About a week ago replicat abened with "Error in mapping" error. I found in discard file some record looking like:
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Where filed9 = @GETENV("GGHEADER", "COMMITTIMESTAM"), field10 = = @GETENV("GGHEADER", "COMMITTIMESTAM"), others are table fields mapped by USEDEFAULTS
    So I got Mapping problem with compressed key update record at 2012-06-01 15:44
    I guess I need to mention that extract failed in 5 minuts before it with: VAM function VAMRead returned unexpected result: error 600 - VAM Client Report <[CFileInfo::Read] Timeout expired after 10 retries with 1000 ms delay, waiting to read transaction log or backup files. To increase the number of retries, use SETENV (GGS_CacheRetryCount = n) in Extract parameter file. To control retry delay time, use SETENV (GGS_CacheRetryDelay = n). handle: 0000000000000398 ReadFile GetLastError:997 Wait GetLastError:997>.
    I don't know if it has ther same source as data corruption, could you tell me if it is?
    Well, I created new extract, starting 2012-06-01 15:30 to check if there was something with extract at the time, but got the same error.
    If I run extract beging at 15:52 it starts and works.
    But well, I got another one today. Data didn't look that bad, but yet one column came with null value:( And I'm using it as a key column, so I got Mapping problem with compressed key update record again:(
    I'm replicating from SQL Server 2008 to Oracle 11g.
    I'm actually using NOCOMPRESSUPDATES in Extract.
    CDC is enabled for all tables replicated. The only thing is that it is enabled not by ADD TRANDATA command, but by SQL Server sys.sp_cdc_enable_table, does it matter?
    Could you please advise why does it happen?

    Well, the problem begins somewhere in extract or before extract, may be in transaction log, I don't know:(
    Here are extract parameters:
    EXTRACT ETCHECK
    TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
    SOURCEDB TEST, USERID **, PASSWORD *****
    exttrail ./dirdat/ec
    NOCOMPRESSUPDATES
    NOCOMPRESSDELETES
    TABLE tst.table1, COLS (field1, field2, field3, field4, field5, field6, field7, field8 );
    TABLE tst.table2, COLS (field1, field2, field3, field4 );
    Data pump:
    EXTRACT DTCHECK
    SOURCEDB TEST, USERID **, PASSWORD *****
    RMTHOST ***, MGRPORT 7809
    RMTTRAIL ./dirdat/dc
    TABLE tst.table1;
    TABLE tst.table2;
    Replicat:
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    Rpt file for replicat:
    Oracle GoldenGate Delivery for Oracle
    Version 11.1.1.1 OGGCORE_11.1.1_PLATFORMS_110421.2040
    Windows x64 (optimized), Oracle 11g on Apr 22 2011 00:34:07
    Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
    Starting at 2012-06-05 12:49:38
    Operating System Version:
    Microsoft Windows Server 2008 R2 , on x64
    Version 6.1 (Build 7601: Service Pack 1)
    Process id: 2264
    Description:
    ** Running with the following parameters **
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    CACHEMGR virtual memory values (may have been adjusted)
    CACHEBUFFERSIZE: 64K
    CACHESIZE: 512M
    CACHEBUFFERSIZE (soft max): 4M
    CACHEPAGEOUTSIZE (normal): 4M
    PROCESS VM AVAIL FROM OS (min): 1G
    CACHESIZEMAX (strict force to disk): 881M
    Database Version:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE     11.2.0.1.0     Production
    TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    Database Language and Character Set:
    NLS_LANG = "AMERICAN_AMERICA.CL8MSWIN1251"
    NLS_LANGUAGE = "AMERICAN"
    NLS_TERRITORY = "AMERICA"
    NLS_CHARACTERSET = "CL8MSWIN1251"
    For further information on character set settings, please refer to user manual.
    ** Run Time Messages **
    Opened trail file ./dirdat/dc000000 at 2012-06-05 12:49:39
    2012-06-05 12:58:14 INFO OGG-01020 Processed extract process RESTART_ABEND record at seq 0, rba 925 (aborted 0 records).
    MAP resolved (entry tst.table1):
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    2012-06-05 12:58:14 WARNING OGG-00869 No unique key is defined for table table1. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
    Using the following default columns with matching names:
    field1=field1, field2=field2, field3=field3, field4=field4, field5=field5, field6=field6, field7=field7, field8=field8
    Using the following key columns for target table R_019_000001.TCALCULATE: field3.
    2012-06-05 12:58:14 WARNING OGG-01431 Aborted grouped transaction on 'tst.table1', Mapping error.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    2012-06-05 12:58:14 WARNING OGG-01151 Error mapping from tst.table1 to tst.table1.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    Source Context :
    SourceModule : [er.main]
    SourceID : [er/rep.c]
    SourceFunction : [take_rep_err_action]
    SourceLine : [16064]
    ThreadBacktrace : [8] elements
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x143034) [0x00000001402192B4]]
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x11dd44) [0x00000001401F3FC4]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x000000014009F102]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B29CC]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B8887]]
    : [C:\App\OGG\replicat.exe(releaseCProcessManagerInstance+0x25250) [0x000000014028F200]]
    : [C:\Windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x000000007720652D]]
    : [C:\Windows\SYSTEM32\ntdll.dll(RtlUserThreadStart+0x21) [0x000000007733C521]]
    2012-06-05 12:58:14 ERROR OGG-01296 Error mapping from tst.table1 to tst.table1.
    * ** Run Time Statistics ** *
    Last record for the last committed transaction is the following:
    Trail name : ./dirdat/dc000000
    Hdr-Ind : E (x45) Partition : . (x04)
    UndoFlag : . (x00) BeforeAfter: A (x41)
    RecLength : 249 (x00f9) IO Time : 2012-06-01 15:48:56.285333
    IOType : 115 (x73) OrigNode : 255 (xff)
    TransInd : . (x03) FormatType : R (x52)
    SyskeyLen : 0 (x00) Incomplete : . (x00)
    AuditRBA : 44 AuditPos : 71176199289771
    Continued : N (x00) RecCount : 1 (x01)
    2012-06-01 15:48:56.285333 GGSKeyFieldComp Len 249 RBA 987
    Name: DBO.TCALCULATE
    Reading ./dirdat/dc000000, current RBA 987, 0 records
    Report at 2012-06-05 12:58:14 (activity since 2012-06-05 12:58:14)
    From Table tst.table1 to tst.table1:
    # inserts: 0
    # updates: 0
    # deletes: 0
    # discards: 1
    Last log location read:
    FILE: ./dirdat/dc000000
    SEQNO: 0
    RBA: 987
    TIMESTAMP: 2012-06-01 15:48:56.285333
    EOF: NO
    READERR: 0
    2012-06-05 12:58:14 ERROR OGG-01668 PROCESS ABENDING.
    Discard file:
    Oracle GoldenGate Delivery for Oracle process started, group RTCHECK discard file opened: 2012-06-05 12:49:39
    Key column filed3 (0) is missing from update on table tst.table1
    Missing 1 key columns in update for table tst.table1.
    Current time: 2012-06-05 12:58:14
    Discarded record from action ABEND on error 0
    Aborting transaction on ./dirdat/dc beginning at seqno 0 rba 987
    error at seqno 0 rba 987
    Problem replicating tst.table1 to tst.table1
    Mapping problem with compressed key update record (target format)...
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Process Abending : 2012-06-05 12:58:14

  • Mapping problem with compressed key update record (target format)...

    Hi Guys,
    Getting below error while replication from Source to target. Source table is having NOT NULL Column, but on target replicat process giving error about some NULL value ??
    How to overcome this issue, any idea...
    2011-08-04 10:35:04 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK starting.
    2011-08-04 10:35:05 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK started.
    2011-08-04 10:35:06 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: OCI Error ORA-01407: cannot update ("INFRA"."CUST"."CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE" = :a4,"ORD_QTY" = :a5,"ORD_PRICE" = :a6,"CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.
    2011-08-04 10:35:06 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Aborted grouped transaction on 'INFRA.CUST', Database error 1407 (ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL).
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 *WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: SQL error 1407 mapping INFRA.CUST to INFRA.CUST OCI Error ORA-01407:* *cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE"=:a4,"ORD_QTY"*
    *= :a5,"ORD_PRICE" = :a6,"SCRP_CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.*
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Error mapping from INFRA.CUST to INFRA.CUST.
    2011-08-04 10:35:06 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: PROCESS ABENDING.
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    *Mapping problem with compressed key update record (target format)...*
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-
    04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    Mapping problem with compressed key update record (target format)...
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Any inputs / help would be appreciated.
    Regards,
    Manish

    The SCRP_CODE column has a NOT NULL constraint. The ORA-01407 error is telling you that you cannot update or set a value for this column to null because of the constraint. This has absolutely nothing to do with an index. You can use a marker/sentinel value in lieu of using NULL. For a numeric field, where everything is positive, a negative value (-1) can be decoded as meaning null. For a character field, a code such as NA can represent NULL.
    This also has nothing to do (directly) with GoldenGate failing because of this error. The underlying SQL statement will fail everywhere, regardless of the tool or application. It is not a case of failing only in GoldenGate.

  • JDBC to Idoc scenario - change of logical system name

    Hi,
    I have a JDBC to idoc scenario that worked. Now i had to change the logical system name from my sender system from ABC_123 into ABC123 in the SLD (Business System - Integration - Logical System name). I did so and also refreshed my Cache.
    Afterwards I started the process, but it failed in the Receiver system. The idoc is correct expect of the partner name. My receiver system expect ABC123 - as I changed in the SLD - but PI send ABC_123.
    If io look in SXI_CACHE - Services my Business System still got the "old" name (ABC_123).
    Did i miss something resp. how can i load the current configuration from SLD?
    Thanks in advance
    Michael

    Hi Michael,
    Again Import the changed logical system in the Integration directory of you PI system.
    And check the scenario (Sender Agreement, Receiver agreement ) what system they are reflecting.
    If they are showing old system then you have to replace the business system in all the scenario.
    Edited by: Rajhans Abhay on Jan 7, 2010 3:14 PM

  • Reg: JDBC to IDOC Scenario Message Mapping

    hi Friends
    i am designing a Scenario JDBC - IDOC for accounting document interface using ACC_DOCUMENT03 idoc.
    i need the mapping program for that to map the JDBC fields with the IDOC fields, so can anyone help me the mandatory fields and the constant values for the IDOC which has to be mapped.Along with this can i know why the constants will be assigned to the fields like Begin =1 , MSGFN = 009 etc how these constants are defined.
    Thanks&Regards
    suman.

    Hi,
    for mapping constants in graphical msg mapping, select your target IDOC field..........then you have a constant in the below screen.........click it and then double-click on constant to change the value of the constant field.........then map this constant to your target IDOC field.
    for knowing which are the mandatory fields, ask your functional guys to tell you the mandatory fields in data segment of your IDOC and regarding Control segment EDIDC, you have to map fields which have sender and reciever system details.
    Regards,
    Rajeev Gupta
    Edited by: RAJEEV GUPTA on Feb 2, 2009 7:55 AM

  • JDBC 2 IDOC SCENARIO

    HI ALL,
      we have one requirement that is I DOC to JDBC....and JDBC to I DOC
      we done The i doc to jdbc succesfuly.... again that data have to store in   ECC side.
      again we done jdbc to i doc scenario.
      Appart that we done all IR and ID part. we striked in mapping pat in JDBC to IDOC....
      There are sending like this
    Rec 1     101
    Rec 2     101
    Rec 3     101
    Rec 4     102
    Rec 5     102
    First record set have to map with header and item number( 1 to 3 )
    second thing is have to mapwith header and item number...
    Thanks and regards,
    kesava.

    Sender_Header-removecontext--splitbyvalue(value change)----collpase context---Target_header
    SenderItem----removecontext----
       -------------------------------------FormatByexample----TragetItem
    Sender_Header-removecontext--splitbyvalue(value change)-----

  • JDBC - XI - IDOC scenario, SM58 error

    I am trying to set up a scenario with JDBC -> XI-> IDOC.  I seem to get the data, but when I look at it in SXMB_MONI, I get the checkered flag, for the overall status, but a red flag for the outbound status.  This led me to SM58 where I see this error "No authorization to send IDocs with message type Z...".  It shows the caller ID as being XIAFUSER (which is different from the ID I have created on the receiving SAP system) and is in function module IDOC_INBOUND_ASYNCHRONOUS.   On XI, I have the RFC (SM59) and Port (IDX1) setup for the receiving SAP system.  The receiving system has an ID setup (used in the RFC on XI), has a partner profile, port, logical system, and a RFC to XI setup.
    Any ideas on where to track this down?  I tried giving XIAFUSER sap_all, and it still fails and this ID does not exist on the receiving system.

    HI,
    Just to inform you that, if any SM58 error, mainly because of IDX1 entry and RFC destination .
    So that;s the reason , i just suggested to check this SAP note.
    Now you have given SAP_ALL access to test right ? Even you can check with this SAP note-837595
    Also check that SM59 (RFC destination) in XI system uses any User ID ? DO not select CURRENT USER option here.. and check it
    Regards,
    Moorthy

  • Idoc to file problem with DynamicConfiguration

    HI SAP Guru's
    I have a iDoc to File scenario and the output file requirement is bit tricky.
    output file should be xx_Region_iDoc Number_YYYYMMDDHHMMSS
    I been through couple of blogs but non of them mentioned about the iDoc all of them showed the about the FileName in FileAdapter.
    I believe it is only possibly via Dynamic configuration.
    I need to extract E1EDKA1/LAND1, DOCNUM from Source IDoc Structure and then concat it with Date and generate the output file name.
    I cannot even get the iDoc Number i.e. DOCNUM via Dynamic Configuration.
    I was trying this method but it didn't work.
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/IDoc","DOCNUM");
    String ourSourceFileName = conf.get(key);
    return  ourSourceFileName; 
    Can somebody please let me know how to achieve this and how?

    Hi Rodrigo,
    I have done the UDF with 3 inputs and mapped it with header of Target side and now would like to know about the setting in File Adapter.
    1. Could tell me what do I need to write in "File Name Scheme" , I am using *.xml , is it right?
    2. I also check the Use Adapter Specific Message Attributes,
        Fail if Adapter-Specific Message Attributes Missing
        FileName
    Could you please tell me is there anything else I need to do because I have been through couple of blogs and all of them mentioned about File but not about the IDoc.
    DynamicConfigurationKey key = DynamicConfigurationKey.create(u201Chttp://sap.com/xi/XI/System/Fileu201D,u201CFileNameu201D);
    Except you who mentioned this
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/IDoc",fileName);
    I am bit confused about the FileName because there is no FileName in IDoc;
    I found these information in IDoc Dynamic Configuration
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Determination
      -->
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="SNDPOR">SAPDGE</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="SNDPRN">DGE008</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="SNDPRT">LS</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="RCVPOR">A000000012</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="RCVPRN">CITIPHMX</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="RCVPRT">B</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="MESTYP">PAYEXT</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="IDOCTYP">PEXR2002</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/IDoc" name="CIMTYP">ZPEXR2002</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/Message/30" name="CALLER_CODEPAGE">4102</SAP:Record>
      </SAP:DynamicConfiguration>
    Please comment.

Maybe you are looking for