Flat file mandatory field mapping problem
Hi Guys,
I am mapping xml to the positional flat file.
There is only one field in the output FF 'provider_state' which is not being mapped.
As a change I added new field after the provider_state.
My problem is that the provider_state with length 2 is not produced in the output as blank spaces to match the position flat file.
However, I have tried creating the record using xslt and also tried to add default 'spacespace' in the schema, tried mapping 'spacespace' in the outpt.
When I try to add space2 I get CRLF in the output at the filed position.
In short last field '%' should be at 733 position but it is at 731.
Thanks in advance...
//Dhiraj Bhavsar
Hi Dhiraj,
This is by design and
You may want to change provider_id to attribute if its element.
To resolve this please check this..
http://msdn.microsoft.com/en-us/library/ee250694(v=bts.10).aspx#bts:source_specification
Regards
Ritu Raj
When you see answers and helpful posts,
please click Vote As Helpful, Propose As Answer, and/or Mark As Answer
Similar Messages
-
Flat File to XML mapping Problem
I am facing some issues in mapping from flat file to XML. I have not reached to the stage of actually executing the scenario and the problem has not advanced beyond mapping tests.
Following are structures of inbound flat file (as specified in content conversion parameters of sender adapter)
Document Name  MMADealerStatementInbound_MT
Recordset Name  MMADealerStmtInbound_Type
Recordset Structure 
BatchHeader,1,DealerHeader1,,DealerHeader2,,DealerDetail,,DealerAgeing,,Trailer,1
Recordset Sequence  Ascending
Key Field Name  RecordType
Key Field Type  String (Case Sensitive)
Following are structures of Outbound XML file needed
All DealerDetail nodes are lumped together in first DealerStmt nodes. They need to be distributed across many DealerStmt nodes.
Company CompanyName 25
Company CompanyAddress StreetAddress Company Street Address 50
Company CompanyAddress City Company City 40
Company CompanyAddress State Company State 3
Company CompanyAddress ZIP Company ZIP 10
Company CompanyAddress Country Company Country 3
Company RunParams RunDate Statement Run date 8
Company RunParams StmtPeriod Statement Period 20
DealerStmt 0-unbounded DealerNumber 10
DealerStmt 0-unbounded DealerName 35
DealerStmt 0-unbounded DealerAddress StreetAddress Dealer Street Address 50
DealerStmt 0-unbounded DealerAddress City Dealer City 40
DealerStmt 0-unbounded DealerAddress State Dealer State 3
DealerStmt 0-unbounded DealerAddress ZIP Dealer ZIP 10
DealerStmt 0-unbounded DealerAddress Region Dealer Region 4
DealerStmt 0-unbounded DealerRemitToAddress CompanyName Company Name 50
DealerStmt 0-unbounded DealerRemitToAddress StreetAddress1 Street Address 1 50
DealerStmt 0-unbounded DealerRemitToAddress StreetAddress2 Street Address 2 50
DealerStmt 0-unbounded DealerRemitToAddress StreetAddress3 Street Address 3 50
DealerStmt 0-unbounded DealerDetail 0-unbounded DocDate Document Date 8
DealerStmt 0-unbounded DealerDetail 0-unbounded InvoiceNumber Invoice Number 10
DealerStmt 0-unbounded DealerDetail 0-unbounded TransDescription Transaction Description 50
DealerStmt 0-unbounded DealerDetail 0-unbounded TransAmount Transaction Amount 16
DealerStmt 0-unbounded DealerDetail 0-unbounded AmountSign Amount Sign 1
DealerStmt 0-unbounded DealerAgeing CurrentBal Current Balance 15
DealerStmt 0-unbounded DealerAgeing Bal1to31days Balance 1 to 31 Days 15
DealerStmt 0-unbounded DealerAgeing BalOver31 Over 31 days Old 15
DealerStmt 0-unbounded DealerAgeing BalOver61 Over 61 days Old 15
DealerStmt 0-unbounded DealerAgeing BalOver92 Over 92 days Old 15
DealerStmt 0-unbounded DealerAgeing BalOver123 Over 123 days Old 15
Trailer DealersCount 5
Trailer TransCount 10
Trailer TotalAmount 20
Here is the mapping I used for this node.
/ns0:MMADealerStatementOutbound_MT/MMADealerStmtOutbound_Type/DealerStmt/DealerDetail=ifWithoutElse(stringEquals(/ns0:MMADealerStatementInbound_MT/MMADealerStmtInbound_Type/DealerDetail/RecordType=, const()), SplitByValue(/ns0:MMADealerStatementInbound_MT/MMADealerStmtInbound_Type/DealerDetail=))
My email address is [email protected] and i can send some screen shots to understand better.
I need help of XI mapping Gurus.
Thanks
RajeshHI,
Possible mention the source Message/Data Type and Target Data Type and Mapping Rules reuired. Then I think it may be useful to give some hints.
btw , What is the error in Mapping ?
Regards,
Moorthy -
Creating dynamical flat file name in mapping?
Hi.
I know about the variations on how to use an input parameter and/or sysdate to create a dynamic output file name in a mapping.
My challenge is nearly the same, but I cannot make OWB generate the correct code.
Problem:
- got a one column table that holds an identifier in a string field
- got a function that reads and returns said identifier
- imported function into OWB
- trying to use the function call in the Flat File Operator's Target Data File Name, e.g. fixedfilename||fn_get_id()||sysdate||'.ext
OWB creates the code:
UTL_FILE.FOPEN(
'my_location',
'fixedfilename'||fn_get_id()||'_'||SYSDATE||'.ext',
'w',
32767
However, when compiling the package code, it returns the warning:
ORA-06550: PACKAGE BODY, line 2214, column 29: PLS-00201: identifier 'FN_GET_ID' must be declared
which results in an error when trying to execute the mapping.
I've tried substituting the function call in the FOPEN call:
myId := fn_get_id();
UTL_FILE.FOPEN(
'my_location',
'fixedfilename'||myId||'_'||SYSDATE||'.ext',
'w',
32767
and this works fine, the mapping creates a file with the desired filename. But obviously not a good solution rewriting the generated code all the time....
Anyone solved something similar?
Could I use an input parameter and the autogenerated function GET_<PARAMETER>?
But can I set the value of an input parameter inside the very same mapping?
Regards,
-Haakon-(It always helps writing out one's problems...)
I managed to get it working :-)
Added an input parameter to the mapping, and gave the outgroup variable a default value by calling my imported function.
Then concatenated the implicitly generated function (GET_PARAMETER) in the Target Data flat file name.
I now have a target file name that changes according to a departement id stored in a parameter table.
Regards,
-Haakon- -
Flat file to idoc mapping issue
Hi Gurus,
i had a flat file format in sender side as below:
H_ID TYP_CODE line_elemet Quantity
5896 STANDARD 1.transmitter 1
5896 STANDARD 2.xxxxxxxxx 1
5896 STANDARD 3.yyyyyyyyy 2
6895 STANDARD 1.aaaaaaaaa 1
9436 STANDARD 1.bbbbbbbbb 4
9436 STANDARD 2.ggggggggg 3
The above file need to be send to an Idoc.
for which same header_ID values should create only one header segment, under that many a line segments should create as many line items appear on that header_id value.
Here my query is how to suppress the repetetive header values to create onlyone header segment. And how to create as many line_item segments as the number of line items appear.
points obvoius for the response
Thanks in advance,
Sekhar.About map problem I suggest youn to see the following link that are really helpful to improve knowledge about mapping:
/people/sravya.talanki2/blog/2005/08/16/message-mapping-simplified--part-i
/people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
I suggest you to see the following link to learn more about mapping:
Mapping functionality in XI
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638
SAP Exchange Infrastructure - Graphical_Mapping
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6658bd90-0201-0010-fbb6-afe25fb398d3
SAP Exchange Infrastructure - Graphical Mapping Exercise
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/fd5ebd90-0201-0010-d697-91374d5b5190
SAP Exchange Infrastructure - Graphical Mapping - Advanced
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/be05e290-0201-0010-e997-b6e55f9548dd
SAP Exchange Infrastructure: Mapping Patterns - Understand Context Handling in Message Mapping - Webinar Powerpoint
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f59730fa-0901-0010-df97-c12f071f7d3b
SAP NetWeaver Exchange Infrastructure Mapping Troubleshooting - Webinar Powerpoint
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e01e9400-9e81-2910-20a5-a862945a5e98
Mapping Lookups a RFC API
Mapping lookups - RFC API
XI 3.0 New Mapping Features
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8a57d190-0201-0010-9e87-d8f327e1dba7
I hope these links will be usefull.
Regards,
Salvatore -
XI Flat File to JDBC Mapping Error
Hi,
I have been trying to insert some records from a flat file into a sybase database using the FILE adapter (with file content conversion) as a sender and the JDBC adapter as a reciever, but I keep getting mapping errors like:
RuntimeException during appliction Java mapping com/sap/xi/tf/_mm_hh_file__hh_sybase_nombres_</Trace>
<Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:mt_hh_sybase_nombres/STATEMENTNAME. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start
I have read through some blogs and I still can't figure out what is wrong.
Flat pipe separated file:
Hans|Robert|Hahn|Gallegos
Karina|Maria|Cordoba|Gutierrez
Datatype for this file looks like this:
Record 1
Row 1...Unbounded
Nombre 1
SegundoNombre 1
ApPaterno 1
ApMaterno 1
Because the FILE adapter uses Content conversion, the file translates to:
<?xml version="1.0" encoding="utf-8" ?>
<ns:hh_test xmlns:ns="http://me.com">
<Record>
<Row>
<Nombre>Hans</Nombre>
<SegundoNombre>Robert</SegundoNombre>
<ApPaterno>Hahn</ApPaterno>
<ApMaterno>Gallegos</ApMaterno>
</Row>
<Row>
<Nombre>Karina</Nombre>
<SegundoNombre>Maria</SegundoNombre>
<ApPaterno>Cordoba</ApPaterno>
<ApMaterno>Gutierrez</ApMaterno>
</Row>
</Record>
</ns:hh_test>
My database table looks like this:
Nombres
ApPaterno
ApMaterno
Datatype for this table looks like this:
STATEMENTNAME 1..Unbounded
nombres 1
action optional
TABLE 1
access 1
Nombres 1
ApPaterno 1
ApMaterno 1
MAPPINGS as follows:
Record ------> no mapping
Row ------> STATEMENTNAME
Constant ------> action
Constant ------> TABLE
Nombre + SegundoNombre ------> Nombres
ApPaterno ----> ApPaterno
ApMaterno ----> ApMaterno
How do I do the mapping ? I've been through a lot of blogs and threads but I haven't found an example like this, a flat pipe separeted multiline file with records to be inserted in a database.
Message was edited by:
Hans HahnHans,
The error shows you have an error in mapping. Also you have mapped constant for ACTION and TABLE. Here you have to hardcode the value INSERT or UPDATE etc for ACTION and the name of the table for TABLE.
Check this weblog where he has mentioned everything what you are looking for:
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Also once when you are done with mapping try to execute it in the test tab of mapping editor.
---Satish -
IDoc to Flat file scenario - abap mapping
Hi All,
I have to do some IDOC to Flat file scenarios. In Order to generate the file in required format I will have to add all segments(Nodes) of Idoc in FCC receiver. We also have other option of doing it through ABAP Mapping which I found in one blog.
Now my question is : Is it better way of doing it through FCC or ABAP Mapping?
Ofcourse from development point of view ABAP Mapping looks easier as FCC is very time consuming task.
Is there and performance issues in either of the approach?
Thanks and Regards,
AtulHi VJ and Harald,
Thanks for your replies.
I am not having PI7.1 however the given blog was very informative.
I will try using file port approach as suggested.
Thanks and Regards,
Atul -
Flat File to IDOC Mapping requirement to generate Multiple Segments
Hi Experts,
I got a requirement were i have 2 records in a file and i need to generate 2 IDOCs with multiple segments in it.
FILE :
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
Idoc should generate 2 IDOCs with multiple segments as shown below
I have imported the IDOC and changed the occurrence to " unbounded "
The Basic IDOC Type : WMMBID02
I need to generate Multiple segments of E1MBXY1
i.e.., First IDOC should contain two E1MBXY1 segments
Second IDOC should contain Four E1MBXY1 segments
IDOC1 : WMMBID02
Segment : E1MBXY1( 2 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
IDOC2 : WMMBID02
Segment : E1MBXY1 ( 4 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 30-0257 3521 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3521 1 2 ea 110000 10
Can anyone suggest me how to generate IDOCs with multiple segments
what are multiple ways of generating it
Whether it can be achieved using Multi-mapping or I need go for UDF
If any one has done has done this type of requirement ,please share the points.
Thanks
SaiBasically you need to generate idoc per record in the flat file. During fcc conversion you convert flat file to xml structure at the sender side. In the mapping use xml file structure source and idoc as receiver structure. You just export idoc and update the idoc segment 1 to unbounded. Please follow the michael blog for file to idoc multimapping without bpm. Yes without bpm it is possible.
see this link... This will answer your requirement.
https://wiki.sdn.sap.com/wiki/display/XI/File%20to%20Multiple%20IDOC%20Splitting%20without%20BPM
>Whether it can be achieved using Multi-mapping or I need go for UDF
you dont need udf for this. -
I am experiencing an exception indicating a missing mapping for a field. My problem is that I have a mapping! I suspect the problem has something to do with the fact the field in question is also the @PrimaryKeyJoinColumn. Am I doing something wrong or is this a bug in the refresh() method code since the find() method works with no problem? Thanks in advance.
Code and log excerpts follow:
Calling Code...
TaxableDescription description = em.find( TaxableDescription.class, cusip );
if (refreshEntity) {
{color:#ff0000}em.refresh( description );{color}
Entity Code..
@Entity
{color:#ff0000}@Table( name="f_ISSUE" )
@SecondaryTable(
name="f_COUPON_INFO",
pkJoinColumns=@PrimaryKeyJoinColumn(
referencedColumnName="issue_id", name="issue_id"
){color}
@NamedQueries({
@NamedQuery(
name="TaxableDescription.findByCusip",
query="SELECT d FROM TaxableDescription d WHERE d.cusip = :cusip"
public class TaxableDescription
extends Description implements Serializable
private long issueID;
private long fkIssueID;
private String interestFrequencyCode;
private Date nextCallDate;
private double nextCallPrice;
private Date parCallDate;
private double parCallPrice;
private boolean defaulted;
private String variableCouponType;
//@Id
@Column( name="issue_id", table="f_ISSUE" )
public long getIssueID() {
return issueID;
public void setIssueID( long issueID ) {
this.issueID = issueID;
@Override
@Id
@Column( name="CUSIP_nbr" )
public String getCusip() {
return super.getCusip();
@Override
public void setCusip(String cusip) {
super.setCusip(cusip);
@Override
@Column( name="maturity", updatable=false, insertable=false )
@Temporal(TemporalType.DATE)
public Date getMaturity() {
return super.getMaturity();
@Override
public void setMaturity(Date maturity) {
super.setMaturity(maturity);
{color:#ff0000} @Column( table="f_COUPON_INFO", name="issue_id", insertable=false, updatable=false )
{color} public long getFkIssueID() {
return fkIssueID;
public void setFkIssueID( long fkIssueID ) {
this.fkIssueID = fkIssueID;
@Override
@Column( table="f_COUPON_INFO", name="coupon", updatable=false, insertable=false )
public double getCoupon() {
return super.getCoupon();
@Override
public void setCoupon(double coupon) {
super.setCoupon( coupon );
@Column( table="f_COUPON_INFO", name="interest_frequency", updatable=false, insertable=false )
public String getInterestFrequencyCode() {
return interestFrequencyCode;
public void setInterestFrequencyCode( String interestFrequencyCode ) {
this.interestFrequencyCode = interestFrequencyCode;
@Override
@Column( table="f_COUPON_INFO", name="dated_date", updatable=false, insertable=false )
@Temporal( TemporalType.DATE )
public Date getDatedDate() {
return super.getDatedDate();
@Override
public void setDatedDate(Date datedDate) {
super.setDatedDate(datedDate);
@Override
@Column( table="f_COUPON_INFO", name="first_interest_date", updatable=false, insertable=false )
@Temporal( TemporalType.DATE )
public Date getFirstInterestDate() {
return super.getFirstInterestDate();
@Override
public void setFirstInterestDate(Date firstInterestDate) {
super.setFirstInterestDate(firstInterestDate);
@Column( name="next_call_date", updatable=false, insertable=false )
@Temporal( TemporalType.DATE )
protected Date getNextCallDate() {
return nextCallDate;
protected void setNextCallDate( Date date ) {
this.nextCallDate = date;
@Column( name="next_call_rate", updatable=false, insertable=false )
protected double getNextCallPrice() {
return nextCallPrice;
protected void setNextCallPrice( double value ) {
this.nextCallPrice = value;
@Column( name="par_call_date", updatable=false, insertable=false )
@Temporal( TemporalType.DATE )
protected Date getParCallDate() {
return parCallDate;
protected void setParCallDate( Date date ) {
this.parCallDate = date;
@Column( name="par_call_rate", updatable=false, insertable=false )
protected double getParCallPrice() {
return parCallPrice;
protected void setParCallPrice( double value ) {
this.parCallPrice = value;
@Column( name="moodys_code", updatable=false, insertable=false )
public Integer getIntegerMoodysCode() {
return super.getMoodysCode();
public void setIntegerMoodysCode(Integer moodysCode) {
super.setMoodysCode( moodysCode != null ? moodysCode : 99 );
@Column( name="s_p_code", updatable=false, insertable=false )
public Integer getIntegerSpCode() {
return super.getSpCode();
public void setIntegerSpCode(Integer spCode) {
super.setSpCode( spCode != null ? spCode : 99 );
@Column( name="fitch_code", updatable=false, insertable=false )
public Integer getIntegerFitchCode() {
return super.getFitchCode();
public void setIntegerFitchCode(Integer fitchCode) {
super.setFitchCode( fitchCode != null ? fitchCode : 99 );
@Override
@Column( name="principal_amt", updatable=false, insertable=false )
public double getPrincipalAmount() {
return super.getPrincipalAmount();
@Override
public void setPrincipalAmount(double principalAmount) {
super.setPrincipalAmount(principalAmount);
@Transient
public boolean getDefaulted() {
return defaulted;
@Transient
public boolean isDefaulted() {
return defaulted;
public void setDefaulted( boolean defaulted ) {
this.defaulted = defaulted;
@Column( name="defaulted", updatable=false, insertable=false )
public String getDefaultedFlag() {
return defaulted ? "Y" : "N";
public void setDefaultedFlag( String defaultedFlag ) {
this.defaulted = "Y".equalsIgnoreCase( defaultedFlag );
@Column( table="f_COUPON_INFO", name="coupon_change_indicator", updatable=false, insertable=false )
public String getVariableCouponType() {
return variableCouponType;
public void setVariableCouponType( String variableCouponType ) {
this.variableCouponType = variableCouponType;
@OneToMany( targetEntity=com.bondtrac.entities.TaxableCouponStepEntity.class )
@JoinTable(
name="f_CHANGE_SCHEDULE",
joinColumns=@JoinColumn( name="issue_id", referencedColumnName="issue_id" )
public List getCouponSteps() {
return super.getCouponStepSchedule();
public void setCouponSteps( List couponSteps ) {
super.setCouponStepSchedule( couponSteps );
@PostLoad
private void postLoad() {
if ( interestFrequencyCode != null &&
interestFrequencyCode.length() > 0 )
int intFreq = 2;
try {
intFreq = Integer.parseInt( interestFrequencyCode );
catch ( Exception e ) {}
if ( intFreq <= 0 ) intFreq = 2;
super.setInterestFrequency( intFreq );
else {
super.setInterestFrequency( 2 );
if ( nextCallDate != null || parCallDate != null ) {
CallSchedule _callSchedule = super.getCallSchedule();
if ( _callSchedule == null ) {
_callSchedule = new CallSchedule();
super.setCallSchedule( _callSchedule );
if ( nextCallDate != null ) {
_callSchedule.addCall( nextCallDate, nextCallPrice );
if ( parCallDate != null ) {
_callSchedule.addCall( parCallDate, parCallPrice );
@PrePersist
@PreUpdate
private void preUpdate() {
switch ( super.getInterestFrequency() ) {
case 2 : interestFrequencyCode = "2"; break;
case 1 : interestFrequencyCode = "1"; break;
case 4 : interestFrequencyCode = "4"; break;
case 12 : interestFrequencyCode = "12"; break;
case 99 : interestFrequencyCode = "99"; break;
default : interestFrequencyCode = "2"; break;
nextCallDate = null;
nextCallPrice = 0.0;
parCallDate = null;
parCallPrice = 0.0;
CallSchedule _callSchedule = super.getCallSchedule();
if ( _callSchedule != null ) {
Call call = _callSchedule.getNextCall();
if ( call != null ) {
nextCallDate = call.getDate();
nextCallPrice = call.getAmount();
call = _callSchedule.getNextParCall();
if ( call != null ) {
parCallDate = call.getDate();
parCallPrice = call.getAmount();
@Override
public int hashCode() {
return cusip != null ? cusip.hashCode() : 0;
@Override
public boolean equals( Object o ) {
if ( !( o instanceof TaxableDescription ) ) return false;
TaxableDescription otherDescription = (TaxableDescription)o;
if ( cusip == otherDescription.cusip ) return true;
if ( cusip != null ) return cusip.equals( otherDescription.cusip );
return false;
Server log entry...
[#|2008-11-20T17:41:42.389-0600|WARNING|sun-appserver9.1|oracle.toplink.essentials.session.file:/opt/SUNWappserver/domains/domain1/applications/j2ee-apps/Bondtrac-EE/Bondtrac-EE-pu.jar-BondtracPU|_ThreadID=36;_ThreadName=p: thread-pool-1; w: 44;_RequestID=5b92f658-e52c-4b83-aafc-454a052fc30b;|
Local Exception Stack:
Exception [TOPLINK-45] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DescriptorException
{color:#ff0000}Exception Description: Missing mapping for field [f_COUPON_INFO.issue_id].{color}
Descriptor: RelationalDescriptor(com.bondtrac.entities.TaxableDescription --> [DatabaseTable(f_ISSUE), DatabaseTable(f_COUPON_INFO)])
at oracle.toplink.essentials.exceptions.DescriptorException.missingMappingForField(DescriptorException.java:901)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.addPrimaryKeyForNonDefaultTable(ObjectBuilder.java:154)
at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.buildRowForTranslation(ObjectBuilder.java:899)
at oracle.toplink.essentials.queryframework.ReadObjectQuery.prepareForExecution(ReadObjectQuery.java:502)
at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:622)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:692)
at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:746)
at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:909)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.refresh(EntityManagerImpl.java:389)
at com.sun.enterprise.util.EntityManagerWrapper.refresh(EntityManagerWrapper.java:511)
at com.bondtrac.ejb.DescriptionDAOBean.getDescription(DescriptionDAOBean.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:83)
at $Proxy197.getDescription(Unknown Source)
at com.bondtrac.offeringprocessor.OfferingProcessorBean.process(OfferingProcessorBean.java:1373)
at com.bondtrac.offeringprocessor.OfferingProcessorBean.processOfferingEntity(OfferingProcessorBean.java:642)
at com.bondtrac.offeringprocessor.OfferingProcessorBean.calculateOfferings(OfferingProcessorBean.java:926)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:77)
at $Proxy198.calculateOfferings(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
|#]What database are you using? My guess is that the database you are using returns field names in Uppercase. While the database may not be case sensitive, most databases will convert the field names to either all upper or lower case when returning the metadata - which associates the fields to the values. In this case, it is looking for a value for "issue_id" in the returned results, when I suspect that the database returned a value for "ISSUE_ID". Try having your column names match what the database will return and see if you still get problems.
The other part to this problem is that it does not appear mapped correctly. The primarykeyJoincolumn isn't using primary key fields (CUSIP_nbr is specified as the id), and you have a join table also using the "issue_id" field, so it really should be the id. Either way, the Secondary table is specifying f_ISSUE.issue_id to be a foreign key to f_COUPON_INFO.issue_id, and so the getFkIssueID annotation should be marked insertable=true, updateable =true and the annotation on getIssueID marked insertable=false, updatable=false,since it is set through the f_COUPON_INFO.issue_id field. Fixing this will also likely resolve the issue - the error says it can't find a mapping for the f_COUPON_INFO.issue_id but from looking at the code, what I believe it means is that it can't find a writable mapping. Reading this over again, it looks very confusing but I dont know if I can explain it much better. The field f_COUPON_INFO needs to be writeable and set by the application because you have marked it as controlling the field in f_ISSUE. The field in f_ISSUE needs to be read only, because the value is set/controlled by the value in f_COUPON_INFO.
Best Regards,
Chris -
Hi all,
i'm getting an error from SXMB_MONI in a scenario File to Idoc.
I have done the mapping from source file and Idoc CREMAS03, when i try to test from Integration Repository it's all ok, but when the scenario is executed i find this error in Idoc Adapter :
<SAP:P1>MSGGUID EF7E2140A08811DDBE1202004C4F4F50: Tag #TEXT found instead of tag IDOC BEGIN=</SAP:P1>
The field BEGIN in idoc structure is filled with constant value 1, than i dont understand the error.
This is the xml source file :
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:Vendor xmlns:ns0="urn:tbit40:workshop:group01:legacy">
- <Address>
<Country>IT</Country>
<Zip>001</Zip>
<City>ROMA</City>
<Street>SATTA</Street>
</Address>
<Currency>USD</Currency>
<SearchTerm>TEST</SearchTerm>
<LastName>GUIDA</LastName>
<VendorNumber>44332</VendorNumber>
</ns0:Vendor>
Any help is really appreciated.
Thanks.Hi all and thanks for your answer.
My problem is that for what i can see all Idoc attribute (like the attribute BEGIN) are mapped with constant value.
In taget source i can see : BEGIN = Constant([value=1])
What i dont understand is why when i execute the scenario it ends with this message :
<SAP:P1>MSGGUID EF7E2140A08811DDBE1202004C4F4F50: Tag #TEXT found instead of tag IDOC BEGIN=</SAP:P1>
It seem to me that the tag BEGIN is not filled with value, i also tried to copy the source xml file directly from SXMB_MONI (from payload) and test it in Integration Repository mapping section, but here is all ok and the test end succesfully. -
Gurus,
I have a flat txt file of following format
Doc# Whse Item Matnr date code
3256999 WH20 1001 861927 09/12/200713:24 9596 2
3256999 WH20 1002 861928 09/12/200713:24 9596 2
3256999 WH20 1003 861929 09/12/200713:24 9596 2
3257169 WH20 2000 861964 09/12/200713:24 9596 2
The first 2 columns are header fields rest all are item fields. How do i map this to an Idoc, so as to move doc# and whse to header segment and rest of columns to add multiple item segments on the same idoc ? So for above file i should get 2 idocs only.You can navigate thru these links to get more information:
/people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
http://help.sap.com/saphelp_nw04/helpdata/en/ef/df564b6aa24fc9ab0d685460747de5/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/ee/bf9640dc522f28e10000000a1550b0/frameset.htm
Do your want the source and target structures to resemble the structures below?
Source:-
<source_file>
<row_1>
<item_a>
<item_b>
<item_c>
</row_1>
<row_2>
<item_p>
<item_q>
<item_r>
</row_2>
<row_3>
<item_x>
<item_y>
<item_z>
</row_3>
</source_file>
Target:-
<target_idoc>
<item_a>
<item_b>
<item_c>
<item_p>
<item_q>
<item_r>
<item_x>
<item_y>
<item_z>
</target_idoc>
If so, then all you need to do is to use the node function: "remove context" for all the items under your rows. In other words,do the following mapping:-
*source_file mapped to target_idoc
*map each of the items under all the three rows in the following way:-
"source item" mapped to "remove context" (node function) mapped to (corresponding) "target item".
Also check the occurences for each of your variables in both source and target structures.
/people/ravikumar.allampallam/blog/2005/03/03/creating-purchase-order-idoc-through-xi
Regard's
-Prabhakar.A -
Appending ns1: in Every field[MAPPING PROBLEM]
Hi All,
I am facing a strange problem when generating the output XML file. The file is generating in XML format with an additional ns1 in each line.
Any idea on this guys.
<b>
<ns1:iABC xmlns:ns1="http://www.ABC.com/xmlschema/ABC/">
<ns1:header>
<ns1:flow>ACT</ns1:flow>
<ns1:sender name="XYZ">
</ns1:sender>
<ns1:receiver name="PQR">
</ns1:receiver>
<ns1:generationDate>2008-05-19</ns1:generationDate>
<ns1:fileIdent>2008/05/19T13:32:00</ns1:fileIdent>
</ns1:header>
<ns1:ID ="0000000000000000000000012"></b>
Many Thanks,
JGD
Edited by: JGD on May 19, 2008 2:56 PMHi Stefan.
Well, the answer is "no"
According to XML spec both declarations
<iABC xmlns="http://www.ABC.com/xmlschema/ABC/">
and
<ns:iABC xmlns=ns:"http://www.ABC.com/xmlschema/ABC/">
are semantically identical.
Any standard xml parser will work with both declarations the same way. The mapping tool always use the first way.
Sometimes legacy systems use "xml like" format with some special restrictions.
In this case the only way to handle that is to use workarounds like with the anonymizer bean.
Another problem I'm aware of is the target file encoding. That's "not officially" solved with hidden menu which you can see if you hold CTRL+SHIFT keys and right click on data flow editor. The last menu item is "encoding" - you can set the encoding of the resulting xml there
Best regards
Dmitry -
Trasnformation File..fields mapping..
I am getting some fields from the data field, which I don't need for BPC7NW. For example out of 10 fields 2 field is not required for BPC, but my source system file has these fields.
How to tell the system to ignore this field and load the remaining. because currently my load is failing with message that few of the legacy fields are not mapped.
Appreciate the inputs..Hi
well the mapping can be done as follows:
lets say u have 5 fields in your source file and u need only 3 out of them....
BPC Fields Source Fields
ID = *COL(1)
CO_AREA = *COL(2)
BUS_AREA = *COL(4)
so in the above example u have mapped only required fields from source to target BPC dimensions.U need not to specify anything to ignore if you do not the map the field then it is automatically ignored so as per the above mapping source columns 3 and 5 are ignored.
Regards -
File Content Conversion Mapping problem
Hi,
I tried a file to file simple scenario using FCC on the Sender Side,but I repeatedly get a message mapping error.
I tried changing the different parameters in filesender file adapter, checked message mapping for errors .
1.My Mapping is Correct.
2.The parameters in the FCC are correct.
Is there any way where we can debug the the Message Error.
Regards,HI,
but I repeatedly get a message mapping error.
what error message ur getting.
what is ur file strucutre
what FCC u r using.
give me the details
chirag
Hi,
These are the following details:
1.error message: There is an exception in mapping
2. File structure: A comma separated text file
e.g : Somya, 24.
3. I am using sender file FCC.
My data type is as follows:
FileInput
Recordset
Row
Name
Age
The Sender FCC used is:
Document Name: FileInput
Recordset Name: Recordset
Recordset Sturcute: Row,*
Row.fieldNames: Name,Age
Row.fieldSeparator: ,
Row.endSeparator: 'nl'.
Do Help.
Regards, -
How to create a target flat file in a mapping?
Hi,
I defined a Target location tar_loc (D:\target), a file modul and a file with location tar_loc and file name target_file.
In a mapping I try to use this file as a target.
After validating I get the message: VLD-2357: The name of the target file for target_file is missing.
What to do?
Thanks
AndreasHi Andreas
Set the target data file name when you configure the mapping on the file ooperator, see;
http://blogs.oracle.com/warehousebuilder/2007/06/some_tips_and_hints_about_xml.html
Also this one is interesting for dynamic file names;
http://blogs.oracle.com/warehousebuilder/2007/07/dynamically_generating_target.html
Cheers
David -
Problem Experts OWB 10gR2 - Mapping with OMB - Give a name to the flat file
I'm trying to create a mapping in OWB by using the Experts (OMB),
where the data source is a database table and the target is a flat file (to transform a table to a flat file).
The tasks of my Experts :
This task create a mapping, and add a existing table on it.
OMBCC '$thepath'
catch {OMBDROP MAPPING 'M1'}
OMBCREATE MAPPING 'M1'
OMBALTER MAPPING 'M1' \
ADD $INITIAL_LAUNCH_CONTEXT_TYPE OPERATOR '$thetable' \
BOUND TO $INITIAL_LAUNCH_CONTEXT_TYPE \ '$INITIAL_LAUNCH_CONTEXT' \
This task change the context and create a flat file
OMBCC '/PRJ_LABO_PHARMA/SRC_FILE'
catch {OMBDROP FLAT_FILE 'NEW_FILE'}
OMBCREATE FLAT_FILE 'NEW_FILE' \
SET PROPERTIES (DATA_FILE_NAME) VALUES('fichier_genere.txt')
This task add the flat file to the mapping, and create a connection between the source (table) and the target (flat file)
OMBCC '/PRJ_LABO_PHARMA/MOD_SRC_LABO'
OMBALTER MAPPING 'M1' \
ADD FLAT_FILE OPERATOR 'NEW_FILE'\
BOUND TO FLAT_FILE '/PRJ_LABO_PHARMA/SRC_FILE/NEW_FILE' \
OMBALTER MAPPING 'M1' \
ADD CONNECTION FROM GROUP 'INOUTGRP1' OF OPERATOR '$thetable' \
TO GROUP 'NEW_FILE' OF OPERATOR 'NEW_FILE' COPY ALL
This task update the flat file structure
OMBRECONCILE MAPPING 'M1' OPERATOR 'NEW_FILE' \
TO FLAT_FILE '/PRJ_LABO_PHARMA/SRC_FILE/NEW_FILE' \
USE (RECONCILE_STRATEGY 'REPLACE', MATCHING_STRATEGY 'MATCH_BY_OBJECT_ID')
Then I have a task which execute this mapping.
Everything is good, but during the execution I have a error VLD-2357 : The target file's name is not indicated for the file NEW_FILE.
I don't know how to give a name to the flat file in OMB.
Help me please.
Best regards
SamyJust like if you built this in the UI where you would have to configure the flat file operator and define a target data file name and possibly the location these properties should be set in scripting.
Set the property TARGET_DATA_FILE_NAME to the name of the data file.
Something like....
OMBALTER MAPPING 'M1' \
MODIFY FLAT_FILE OPERATOR 'NEW_FILE' SET PROPERTIES (TARGET_DATA_FILE_NAME) VALUES ('my_datafile.csv')
Cheers
David
Maybe you are looking for
-
Connecting mac pro to Imac for screen share.
I have connected my mac pro to my Imac so i can use the Imac sceen. I hooked directly with a dvi cable. The Imac screen is immediately "taken over" by the mac pro when I make the connection. My question is, is there a way to disconnect without having
-
I cant mirror my iphone4 to my tv using an hdmi wire and a Av adapter, I can only ser videos and netflix bu t I thought I coukd display a lot more, am I doibg something wrong?
-
Beginner ATV questions....
Apologies if this has been done before, I can't find it if it has. I am currently using an S-video cable to watch video etc on my TV. Works, but includes cables and bringing my elderly non-intel powerbook out of it's cosy retirement. I believe ATV
-
HT204074 how do i re download previous videos?
Is there a way to re-download music videos from iTunes?
-
Can anyone tell me the flow of BDC program?
Hi Can anyone tell me the flow of BDC program and also what is the significance of each step? Thanks Gagan