Ctx.SaveChanges() creates new records for related tables
Ok, this is my first stab at EF Code first, so forgive me if this sounds stupid.
I have a simple database and want to add a record in the main trans table. It has 2 foreign keys to 2 reference tables. I wire up the data entry screen in WPF (MVVM) and populate the entity. This entity has the correct references to existing records in the
reference tables.
However when I call save changes it adds the trans record, but also ADDS new records to the reference tables (producing duplicates). I do not want to add records to the reference tables, but rather use the existing records.
I'm sure it's a simple thing, but I am stuck. Any help would be appreciated...
Thanks,
Thank you for the response. I probably didn't phrase it clearly...
I have a simple Warehouse attendance app that will record when people are absent and the reason. I have 2 fixed reference tables. One is a list of employees, the other is a list of reasons (s - Sick, V - Vacation, etc...)
User enters a date, then selects a employee from a drop down and a reason from a drop down.
01/08/2015 Joe Smith S - Sick
Both the employee object and reason object (in my record class) point to valid existing records from their reference tables.(i.e employee Joe smith has an Id of 57)
When I call ctx.SaveChanges();
it adds the record to the attendance file, but also adds a record to the employee and the reason table. I now have 2
Joe Smiths in the employee table as well as 2 S - Sick Reason codes. Joe Smith was added again and now the employee object points to Joe Smith with an Id of 58.
Here is the record class:
public class Record
public int Id { get; set; }
public virtual Employee Employee { get; set; }
public virtual Reason Reason { get; set; }
public DateTime Date { get; set; }
public string Notes { get; set; }
public Record()
Date = DateTime.Now;
public string DayOfWeek
get { return Date.DayOfWeek.ToString(); }
Similar Messages
-
Creating new record in Results Table giving Error
Hi All,
On update page there is a Results Table with Add button to create a new row.
While creating a new record on Results Table gives error
Attribute set for AccessId in view object XXLCUpdVariablesVO1 failed
I have checked EO and VO attributes, everything seems to be right.
Also Updatable is set to 'Always'.
Still don't know why this error is coming up.
Plz help to resolve this error.
Thanks,
SKAjay,
XML code
<?xml version='1.0' encoding='windows-1252' ?>
<!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
<Entity
Name="XXLCVarAssignmentsEO"
DBObjectType="table"
DBObjectName="XXLCOKC_VARIABLE_ASSIGNMENTS"
AliasName="XXLCVarAssignmentsEO"
BindingStyle="OracleName"
UseGlueCode="false"
RowClass="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEOImpl"
DefClass="oracle.apps.fnd.framework.server.OAEntityDefImpl"
CollClass="oracle.apps.fnd.framework.server.OAEntityCache" >
<DesignTime>
<Attr Name="_isCodegen" Value="true" />
<Attr Name="_version" Value="10.1.3.41.57" />
<AttrArray Name="_publishEvents">
</AttrArray>
<Attr Name="_panelSchema" Value="table|alias" />
<Attr Name="_codeGenFlag2" Value="Init|Delete|Access|Val" />
</DesignTime>
<Attribute
Name="AssignmentId"
IsNotNull="true"
ColumnName="ASSIGNMENT_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS"
PrimaryKey="true" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="AssignmentAccess"
IsNotNull="true"
Precision="30"
ColumnName="ASSIGNMENT_ACCESS"
Type="java.lang.String"
ColumnType="VARCHAR2"
SQLType="VARCHAR"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="30" />
</DesignTime>
</Attribute>
<Attribute
Name="VariableId"
IsNotNull="true"
ColumnName="VARIABLE_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="ListValueId"
IsNotNull="true"
ColumnName="LIST_VALUE_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="OrganizationId"
IsNotNull="true"
Precision="15"
Scale="0"
ColumnName="ORGANIZATION_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="TemplateId"
IsNotNull="true"
ColumnName="TEMPLATE_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="AuctionHeaderId"
IsNotNull="true"
ColumnName="AUCTION_HEADER_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="PoHeaderId"
IsNotNull="true"
ColumnName="PO_HEADER_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="CreatedBy"
IsNotNull="true"
ColumnName="CREATED_BY"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="CreationDate"
IsNotNull="true"
ColumnName="CREATION_DATE"
Type="oracle.jbo.domain.Date"
ColumnType="DATE"
SQLType="DATE"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="7" />
</DesignTime>
</Attribute>
<Attribute
Name="LastUpdateDate"
IsNotNull="true"
ColumnName="LAST_UPDATE_DATE"
Type="oracle.jbo.domain.Date"
ColumnType="DATE"
SQLType="DATE"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="7" />
</DesignTime>
</Attribute>
<Attribute
Name="LastUpdatedBy"
IsNotNull="true"
ColumnName="LAST_UPDATED_BY"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="LastUpdateLogin"
IsNotNull="true"
ColumnName="LAST_UPDATE_LOGIN"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Attribute
Name="AccessId"
ColumnName="ACCESS_ID"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
SQLType="NUMERIC"
TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
<DesignTime>
<Attr Name="_DisplaySize" Value="22" />
</DesignTime>
</Attribute>
<Key
Name="SysC00329905" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AssignmentAccess" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""ASSIGNMENT_ACCESS" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329905" />
</DesignTime>
</Key>
<Key
Name="SysC00329906" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.VariableId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""VARIABLE_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329906" />
</DesignTime>
</Key>
<Key
Name="SysC00329907" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.ListValueId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""LIST_VALUE_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329907" />
</DesignTime>
</Key>
<Key
Name="SysC00329908" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.OrganizationId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""ORGANIZATION_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329908" />
</DesignTime>
</Key>
<Key
Name="SysC00329909" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.TemplateId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""TEMPLATE_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329909" />
</DesignTime>
</Key>
<Key
Name="SysC00329910" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AuctionHeaderId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""AUCTION_HEADER_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329910" />
</DesignTime>
</Key>
<Key
Name="SysC00329911" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.PoHeaderId" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""PO_HEADER_ID" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329911" />
</DesignTime>
</Key>
<Key
Name="SysC00329912" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.CreatedBy" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""CREATED_BY" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329912" />
</DesignTime>
</Key>
<Key
Name="SysC00329913" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.CreationDate" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""CREATION_DATE" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329913" />
</DesignTime>
</Key>
<Key
Name="SysC00329914" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdateDate" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""LAST_UPDATE_DATE" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329914" />
</DesignTime>
</Key>
<Key
Name="SysC00329915" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdatedBy" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""LAST_UPDATED_BY" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329915" />
</DesignTime>
</Key>
<Key
Name="SysC00329916" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdateLogin" />
</AttrArray>
<DesignTime>
<Attr Name="_checkCondition" Value=""LAST_UPDATE_LOGIN" IS NOT NULL" />
<Attr Name="_isCheck" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329916" />
</DesignTime>
</Key>
<Key
Name="SysC00329917" >
<AttrArray Name="Attributes">
<Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AssignmentId" />
</AttrArray>
<DesignTime>
<Attr Name="_isPrimary" Value="true" />
<Attr Name="_DBObjectName" Value="SYS_C00329917" />
</DesignTime>
</Key>
</Entity>
XXLCVarAssignmentsEOImpl Code
package xxlc.oracle.apps.okc.schema.articles.variables.server;
import oracle.apps.fnd.framework.OAAttrValException;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.server.OADBTransaction;
import oracle.apps.fnd.framework.server.OAEntityDefImpl;
import oracle.apps.fnd.framework.server.OAEntityImpl;
import oracle.jbo.AttributeList;
import oracle.jbo.Key;
import oracle.jbo.domain.Date;
import oracle.jbo.domain.Number;
import oracle.jbo.server.AttributeDefImpl;
import oracle.jbo.server.EntityDefImpl;
// --- File generated by Oracle ADF Business Components Design Time.
// --- Custom code may be added to this class.
// --- Warning: Do not modify method signatures of generated methods.
public class XXLCVarAssignmentsEOImpl extends OAEntityImpl
public static final int ASSIGNMENTID = 0;
public static final int ASSIGNMENTACCESS = 1;
public static final int VARIABLEID = 2;
public static final int LISTVALUEID = 3;
public static final int ORGANIZATIONID = 4;
public static final int TEMPLATEID = 5;
public static final int AUCTIONHEADERID = 6;
public static final int POHEADERID = 7;
public static final int CREATEDBY = 8;
public static final int CREATIONDATE = 9;
public static final int LASTUPDATEDATE = 10;
public static final int LASTUPDATEDBY = 11;
public static final int LASTUPDATELOGIN = 12;
public static final int ACCESSID = 13;
private static OAEntityDefImpl mDefinitionObject;
/**This is the default constructor (do not remove)
public XXLCVarAssignmentsEOImpl()
/**Retrieves the definition object for this instance class.
public static synchronized EntityDefImpl getDefinitionObject()
if (mDefinitionObject == null)
mDefinitionObject =
(OAEntityDefImpl)EntityDefImpl.findDefObject("xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO");
return mDefinitionObject;
/**Add attribute defaulting logic in this method.
public void create(AttributeList attributeList)
super.create(attributeList);
OADBTransaction transaction = getOADBTransaction();
Number asgId = transaction.getSequenceValue("XXLC_VAR_ASG_SEQ");
setAssignmentId(asgId);
/**Add entity remove logic in this method.
public void remove()
super.remove();
/**Add Entity validation code in this method.
protected void validateEntity()
super.validateEntity();
/**Gets the attribute value for AssignmentId, using the alias name AssignmentId
public Number getAssignmentId()
return (Number)getAttributeInternal(ASSIGNMENTID);
/**Sets <code>value</code> as the attribute value for AssignmentId
public void setAssignmentId(Number value)
if (value != null)
OADBTransaction transaction = getOADBTransaction();
Object[] varKey = {value};
EntityDefImpl varDefinition = XXLCVarAssignmentsEOImpl.getDefinitionObject();
XXLCVarAssignmentsEOImpl variable =
(XXLCVarAssignmentsEOImpl)varDefinition.findByPrimaryKey(transaction, new Key(varKey));
if (variable != null)
throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
getEntityDef().getFullName(), // EO name
getPrimaryKey(), // EO PK
"AssignmentId", // Attribute Name
value, // Attribute value
"AK", // Message product short name
"FWK_TBX_T_EMP_ID_UNIQUE"); // Message name
setAttributeInternal(ASSIGNMENTID, value);
/**Gets the attribute value for AssignmentAccess, using the alias name AssignmentAccess
public String getAssignmentAccess()
return (String)getAttributeInternal(ASSIGNMENTACCESS);
/**Sets <code>value</code> as the attribute value for AssignmentAccess
public void setAssignmentAccess(String value)
setAttributeInternal(ASSIGNMENTACCESS, value);
/**Gets the attribute value for VariableId, using the alias name VariableId
public Number getVariableId()
return (Number)getAttributeInternal(VARIABLEID);
/**Sets <code>value</code> as the attribute value for VariableId
public void setVariableId(Number value)
setAttributeInternal(VARIABLEID, value);
/**Gets the attribute value for ListValueId, using the alias name ListValueId
public Number getListValueId()
return (Number)getAttributeInternal(LISTVALUEID);
/**Sets <code>value</code> as the attribute value for ListValueId
public void setListValueId(Number value)
setAttributeInternal(LISTVALUEID, value);
/**Gets the attribute value for OrganizationId, using the alias name OrganizationId
public Number getOrganizationId()
return (Number)getAttributeInternal(ORGANIZATIONID);
/**Sets <code>value</code> as the attribute value for OrganizationId
public void setOrganizationId(Number value)
setAttributeInternal(ORGANIZATIONID, value);
/**Gets the attribute value for TemplateId, using the alias name TemplateId
public Number getTemplateId()
return (Number)getAttributeInternal(TEMPLATEID);
/**Sets <code>value</code> as the attribute value for TemplateId
public void setTemplateId(Number value)
setAttributeInternal(TEMPLATEID, value);
/**Gets the attribute value for AuctionHeaderId, using the alias name AuctionHeaderId
public Number getAuctionHeaderId()
return (Number)getAttributeInternal(AUCTIONHEADERID);
/**Sets <code>value</code> as the attribute value for AuctionHeaderId
public void setAuctionHeaderId(Number value)
setAttributeInternal(AUCTIONHEADERID, value);
/**Gets the attribute value for PoHeaderId, using the alias name PoHeaderId
public Number getPoHeaderId()
return (Number)getAttributeInternal(POHEADERID);
/**Sets <code>value</code> as the attribute value for PoHeaderId
public void setPoHeaderId(Number value)
setAttributeInternal(POHEADERID, value);
/**Gets the attribute value for CreatedBy, using the alias name CreatedBy
public Number getCreatedBy()
return (Number)getAttributeInternal(CREATEDBY);
/**Sets <code>value</code> as the attribute value for CreatedBy
public void setCreatedBy(Number value)
setAttributeInternal(CREATEDBY, value);
/**Gets the attribute value for CreationDate, using the alias name CreationDate
public Date getCreationDate()
return (Date)getAttributeInternal(CREATIONDATE);
/**Sets <code>value</code> as the attribute value for CreationDate
public void setCreationDate(Date value)
setAttributeInternal(CREATIONDATE, value);
/**Gets the attribute value for LastUpdateDate, using the alias name LastUpdateDate
public Date getLastUpdateDate()
return (Date)getAttributeInternal(LASTUPDATEDATE);
/**Sets <code>value</code> as the attribute value for LastUpdateDate
public void setLastUpdateDate(Date value)
setAttributeInternal(LASTUPDATEDATE, value);
/**Gets the attribute value for LastUpdatedBy, using the alias name LastUpdatedBy
public Number getLastUpdatedBy()
return (Number)getAttributeInternal(LASTUPDATEDBY);
/**Sets <code>value</code> as the attribute value for LastUpdatedBy
public void setLastUpdatedBy(Number value)
setAttributeInternal(LASTUPDATEDBY, value);
/**Gets the attribute value for LastUpdateLogin, using the alias name LastUpdateLogin
public Number getLastUpdateLogin()
return (Number)getAttributeInternal(LASTUPDATELOGIN);
/**Sets <code>value</code> as the attribute value for LastUpdateLogin
public void setLastUpdateLogin(Number value)
setAttributeInternal(LASTUPDATELOGIN, value);
/**getAttrInvokeAccessor: generated method. Do not modify.
protected Object getAttrInvokeAccessor(int index,
AttributeDefImpl attrDef) throws Exception
switch (index)
case ASSIGNMENTID:
return getAssignmentId();
case ASSIGNMENTACCESS:
return getAssignmentAccess();
case VARIABLEID:
return getVariableId();
case LISTVALUEID:
return getListValueId();
case ORGANIZATIONID:
return getOrganizationId();
case TEMPLATEID:
return getTemplateId();
case AUCTIONHEADERID:
return getAuctionHeaderId();
case POHEADERID:
return getPoHeaderId();
case CREATEDBY:
return getCreatedBy();
case CREATIONDATE:
return getCreationDate();
case LASTUPDATEDATE:
return getLastUpdateDate();
case LASTUPDATEDBY:
return getLastUpdatedBy();
case LASTUPDATELOGIN:
return getLastUpdateLogin();
case ACCESSID:
return getAccessId();
default:
return super.getAttrInvokeAccessor(index, attrDef);
/**setAttrInvokeAccessor: generated method. Do not modify.
protected void setAttrInvokeAccessor(int index, Object value,
AttributeDefImpl attrDef) throws Exception
switch (index)
case ASSIGNMENTID:
setAssignmentId((Number)value);
return;
case ASSIGNMENTACCESS:
setAssignmentAccess((String)value);
return;
case VARIABLEID:
setVariableId((Number)value);
return;
case LISTVALUEID:
setListValueId((Number)value);
return;
case ORGANIZATIONID:
setOrganizationId((Number)value);
return;
case TEMPLATEID:
setTemplateId((Number)value);
return;
case AUCTIONHEADERID:
setAuctionHeaderId((Number)value);
return;
case POHEADERID:
setPoHeaderId((Number)value);
return;
case CREATEDBY:
setCreatedBy((Number)value);
return;
case CREATIONDATE:
setCreationDate((Date)value);
return;
case LASTUPDATEDATE:
setLastUpdateDate((Date)value);
return;
case LASTUPDATEDBY:
setLastUpdatedBy((Number)value);
return;
case LASTUPDATELOGIN:
setLastUpdateLogin((Number)value);
return;
case ACCESSID:
setAccessId((Number)value);
return;
default:
super.setAttrInvokeAccessor(index, value, attrDef);
return;
/**Gets the attribute value for AccessId, using the alias name AccessId
public Number getAccessId()
return (Number)getAttributeInternal(ACCESSID);
/**Sets <code>value</code> as the attribute value for AccessId
public void setAccessId(Number value)
setAttributeInternal(ACCESSID, value);
/**Creates a Key object based on given key constituents
public static Key createPrimaryKey(Number assignmentId)
return new Key(new Object[]{assignmentId});
Thanks,
SK -
BRSPACE create new tablespace for compressed table
Dear expert,
I'm plannng to create new tablespace PSAPCOMP for compressed table by brspace.
the current total size of the tables that i want to compression is 1T.
Now i have 2 question about the brspace script
1.How big size should the PSAPCOMP be , let's say 500G?
2. i'm confused about the datafile_dir value i should put (please refer to the attachment for current datafile_dir design)
Could you help to correct/improve the scritpts as following?
scriptA : brspace -f tscreate -t PSAPCOMP -s 5120 -a yes -i 100 -m 15360 -f sapdata4 -l 2 --> assign to sapdata4
repeat scriptB for 20 times
scriptB : brspace -f tsextend -t PSAPCOMP -s 5120 -a yes -i 100 -m 15360 -f sapdata4 -l 2 -f1 4 -f2 4 -f3 4 -f4 4 -f5 4 --> extend 25G in one run
Qestion: is it OK to assign the PSAPCOMP only to "sapdata4"? or i should specify "-f sapdata1 sapdata2 sapdata3 sapdata4" so the table data can distribute among different sapdata_dir?
Thank you!hi Kate,
some of the questions depend on the "customer" decision.
is it OK to assign the PSAPCOMP only to "sapdata4"?
how much space is available? what kind of storage do they have? is totally stripped or not? is there "free" space on the other filesystems?
1.How big size should the PSAPCOMP be , let's say 500G?
as I explained to you already, it is expected that applying all compressions you can save 1/2 of the space but you have to test this as it depends on the content of the tables and selectivity of the indexes. Use the oracle package to simulate the savings for the tables you are going to compress.
do you want the scripts interactive (option -c) or not?
The SAP Database Guide: Oracle has all possible options so you only have to check them
brspace -f tscreate -t PSAPCOMP -s 5120 -a yes -i 100 -m 15360 -f sapdata4 -l 2 --> assign to sapdata4
if you want to create a 500 GB, why you limit the maximum size to 15360? -
How to clear the previous filter text when creating new record??
Dear All,
my question is i i created table having filter and sorting.
when i m searching data through filter text data is coming but i want to clear that text(filter text) when i am creating new record.
for my case when i am creating new record all blank field is coming but in that filter text box previous data is coming which one i was searching.
but i need when i will create a new record tat filter text should be clear.
Thanks
DambyDamby, please tell us your jdev version.
Check my blog http://tompeez.wordpress.com/2011/10/29/jdev-how-to-reset-a-filter-on-an-aftable/ you can add this to the button you use to create the new record.
Timo -
Dynamic Action-Delimiting a record and creating new record
Hi ,
My requirement is in dynamic Action I need to delimit all records in a Subtype of an Infotype and create New record for these records with BEGDA as ENDDA + 1 of the delimited records.
Iam able to delimit all records in the Subtype but , Iam not able to create new records.
My code for delimiting is as given below, in T588Z,
9901 2 06 801 P P9901-SUBTY='2'
9901 2 06 802 P PSYST-IOPER='MOD'
9901 2 06 803 P P9901-STATS='X'
9901 2 06 804 P P9901-PREAS='91'
9901 2 06 805 F DELIMIT_DTE(ZHSRAS_T588Z_9901)
9901 2 06 806 W P9901-ENDDA=RP50D-ZZDATE3
9901 2 06 807 I MOD,9901,3
9901 3 06 808 P SY-UCOMM='UPD'
9901 3 06 809 F DELIMIT_DTE(ZHSRAS_T588Z_9901)
9901 3 06 810 W P9901-ENDDA=RP50D-ZZDATE3
The above code is working fine.
My code for creating new record is as given below, even though the control is oing to the subroutine, INS statement is not working, and hence new record is not getting created.
9901 3 06 811 P SY-UCOMM='UPD'
9901 3 06 812 P PSAVE-ENDDA<>P9901-ENDDA
9901 3 06 813 P P9901-STATS<>'X'
9901 3 06 814 I INS,9901,3
9901 3 06 815 F BEGIN_DATE(ZHSRAS_T588Z_9901)
9901 3 06 816 W P9901-BEGDA=RP50D-ZZDATE3
9901 3 06 817 W P9901-ENDDA='99991231'
Kindly help me on this.Hi shahana,
1. I have not worked on this dynamic action.
2. But instead of doing in 2 steps,
it is usually done in 1 step only, manually.
3. If we CREATE record from some date,
then the OLD will AUTOMATICALLY get Delimited.
(We don't have to do anything specially for delimiting
the old record)
regards,
amit m. -
I have added a new field in IT0006 ,Now when try to create a new record for
Hi Experts,
I have added a new field in IT0006 ,Now when try to create a new record for a employee.
1,If I give the SUBTY in the PA30 screen getting an error "Don't Specify a subty error"
if and remove the subty and press CREATE button popup's comes and list the subty values.......It was allowing me to enter the subty in the PA30 screen prior to my new field addition in IT0006... is't a problem with the new field addition?
2, After I choose the subty value from the pop-up I am able to see the next screen....BUT GETTING AN INFORMATION MESSAGE THAT "Assignment to feature P0006 did not take place"?
3,, In the next screen after I have passed all mandatory fields while attempting SAVE I am getting an error called " Time constraint table in T777D is incorrect" what could be the cause?How are u adding fields to table using append in se11 or pm01.
if you are adding fields using se11 delete it and add it0005 in transaction pm01 and generate object.
add fields to structure CI_XX_R0005 and generate screen and maintain entry and screen in maintance view add entry and activate program. -
Using combination of insert into and select to create a new record in the table
Hello:
I'm trying to write a stored procedure that receives a record locator parameter
and then uses this parameter to locate the record and then copy this record
into the table with a few columns changed.
I'll use a sample to clarify my question a bit further
-- Create New Amendment
function create_amendment(p_mipr_number in mipr.mipr_number%TYPE, p_new_amendment_number in mipr.amendment_number%TYPE)
return integer is
new_mipr_id integer;
begin
THIS is causing me grief See comments after this block of code
insert into mipr
(select mipr_id from mipr where mipr_number=p_mipr_number),
(select fsc from mipr where mipr_number=p_mipr_number),
45,
(select price from mipr where mipr_number=p_mipr_number),
practical,
(select part_number from mipr where mipr_number=p_mipr_number);
THe above will work if I say the following
insert into mipr
(select * from mipr where mipr_number=p_mipr_number);
BUt, Of course this isn't what I want to do... I want to duplicate a record and change about 3 or 4 fields .
How do I use a combination of more than one select and hard coded values to insert a new record into the table.
/** Ignore below this is fine... I just put a snippet of a function in here ** The above insert statement is what I need help with
select (mipr_id) into new_mipr_id from mipr where mipr_number=p_mipr_number + amendment_number=(select max(amendment_number) + 1);
return new_mipr_id;
end;
THANK YOU IN ADVANCE!
KTfunction create_amendment(p_mipr_number in mipr.mipr_number%TYPE)
return integer is
new_mipr_id integer;
tmp_number number;
tmp_mipr_id integer;
begin
tmp_number :=(select max(amendment_number) from mipr where mipr_number=p_mipr_number);
Question:
tmp_number :=1; works..
tmp_number doesn't work with the select statement?
Obviously I'm a novice! I can't find anything in my book regarding tmp variables... What should I look under is tmp_number a
variable or what? In my Oracle book, variable means something different.
Thanks!
KT
I have the following code in my stored procedure:
Good luck,
Eric Kamradt -
How to create a record for table PLAF with order type 'NB'.
How to create a record for table PLAF with order type 'NB'(standard purchase order).
who can tell me the T-code or some usefull information?
Thanks.Hi
This will be updated automatically when generate planned orders thru MRP. (MD02)
regards
Srinivas -
[ADF Help] How to create a view for multiple tables
Hi,
I am using Jdeveloper 11G and ADF framework, and trying to create a view to update multiple tables.
ex:
Table A has these fields: ID, Name
Table B has these fields: ID, Address
A.ID and B.ID are primary keys.
B.ID has FK relationship with A.ID
(basically, these tables have one-to-one relation)
I want to create a view object, which contains these fields: B.ID (or A.ID), A.Name, B.Address.
So I can execute C,R,U,D for both tables.
I create these tables in DB, and create entity objects for these tables.
So there are 2 entity objects and 1 association.
Then I create a view object based on B and add fields of A into the view:
If the association is not a "Composition Association",
when I run the model ("Oracle Business Component Browser") and try to insert new data, fields of A can't edit.
If the association is a "Composition Association", and click the insert button, I will get
"oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity"
If I create a view object based on A and add filed of B into the view:
When I run the model and try to insert new data, fields of B can't edit, no matter the association is or is not a composition association.
So... how can I create a view for multiple tables correctly?
Thanks for any advices!
Here are some pictures about my problem, if there is any unclear point, please let me know.
http://leonjava.blogspot.com/2009_10_01_archive.html
(A is Prod, B is CpuSocket)
Edited by: user8093176 on Oct 25, 2009 12:29 AMHi Branislav,
Thanks, but the result is same ....
In the step 2 of creating view object, I can select entity objects to be added in to the view.
If I select A first, and then select B (the "Source Usage" of B is A), then finishing the wizards.
When I try to create a new record in the view, I can't edit any properties of B (those files are disabled).
If I select B first, and then select A in crating view object, the result is similar ...
Thanks for any further suggestion.
Leon -
Error while create trigger on for nested table
I want to insert a record into a nested table.For this, I created a view for the table, which includes the nested table.It told me ORA-25015 cannot perform DML on this nested table view column.So I created a trigger for the nested table.However, it told me that ORA-25010 Invalid nested table column name in nested table clause.I think my nested table is valid, i don't konw why did it appear this kind of problem?
My table is
CREATE TABLE ENT
ID NUMBER(7) NOT NULL,
CREATE_DATE VARCHAR2(11 BYTE),
UPDATE_DATE VARCHAR2(11 BYTE),
DEPTS VARRAY_DEPT_SEQ
CREATE OR REPLACE
TYPE DEPT AS OBJECT
ID NUMBER(8),
ANCHOR VARCHAR2(20),
CREATE OR REPLACE
TYPE " VARRAY_DEPT_SEQ" as varray(930) of DEPT
CREATE OR REPLACE VIEW ENT_NESTED_VIEW
(ID, CREATE_DATE, UPDATE_DATE, DEPTS)
AS
select e.ID,cast(multiset(select r.id,r.anchor from ent z, table(z.depts) r where z.ID=e.ID )as varray_dept_seq)
FROM ENT e
Then when I created trigger;
CREATE OR REPLACE TRIGGER EMP.ENT_NESTED_TRI
INSTEAD OF INSERT
ON NESTED TABLE DEPTS OF EMP.ENT_NESTED_VIEW
REFERENCING NEW AS New OLD AS Old PARENT AS Parent
FOR EACH ROW
BEGIN
END ;
I met the problem: ORA-25010 Invalid nested table column name in nested table clause
Could you please tell me the reason
Thank you!
My insert SQL is:
insert into table(select depts from ent_nested_view where id=1856) values(varray_dept_seq(dept(255687,'AF58743')))
Message was edited by:
user589751Hi,TongucY
Compared with the "Referencing Clause with Nested Tables" part of this reference -
http://psoug.org/reference/instead_of_trigger.html, I found the answer of this
quesion. That is "CREATE OR REPLACE TYPE " VARRAY_DEPT_SEQ" as[b] varray(930) of
DEPT". It turns to be a varying array, not a nested table. It should be "CREATE OR
REPLACE TYPE " VARRAY_DEPT_SEQ" as table of DEPT". That is OK. Thank you very
much!
While there is an another question, if I create a varying array like" CREATE OR
REPLACE TYPE " VARRAY_DEPT_SEQ" as[b] varray(930) of DEPT " and I want to insert
a record into the varying array, which the record has been existed.The method that
create a view and a trigger seems not to be effective.
For instance,
There is a record in the table
ID:1020
CREATE_DATE:2005-10-20
UPDATE_DATE:2007-2-11
DETPS: ((10225,AMY))
I want to ask this record to be
ID:1020
CREATE_DATE:2005-10-20
UPDATE_DATE:2007-2-11
DETPS: ((10225,AMY),(10558,TOM))
How should I do?
Could you please help me?
Best regards.
Message was edited by:
user589751 -
Creating new records while querying existing record
Hi,
I have one master - detail form.
First i created 1 record. Request ID is the primary key. Now request id generated. For ex.: 10
Request Id, date, requestor , location, status fields are in header block.
In lines block, i hv some other fields.. and one field called 'Activity'.
While creating first record, the activity will be 'New'.
Then i'll query the record '10'.
when i'm changing the activity 'New' into 'Upgrade', it should create new record with new request ID.
How to do this?
I hv written procedure that, i'm taking field values to local variables. Then assigning the local variable values to field values.
It is not creating as new record. It overwriting the existing record with new values. Existing record is missing.
Pl. give steps.
Thanks
KaviHi,
Okk, you will have to do two things. Create two trigger on block level on which you want to do your changes.
1. First trigger. (PRE-UPDATE)
In pre-update trigger u will have to write the complete insert statement into the same table with new req id. like
DECLARE
vReqNo DATA_TYPE;
BEGIN
SELECT MAX(REQ_ID)
INTO vReqNo
FROM your_table;
INSERT INTO your_table
(req_no, fields....)
VALUES
(vReqNo, :forms_values);
END;
2. Create 2nd trigger on block level (ON-UPDATE)
write in this trigger
NULL;
for viewing the inserted record. What u have to do is in ON-UPDATE after null; create one timer NO_REAPEAT.
and in timer u will have to set the block property to req_id = generated_req_id_from_pre_update_trigger and
execute_query;
hope it will work...
-Ammad -
I have imported all objects from an old access db (.adp file) into a new db (.accdb). All of my data lives in sql server so I have added all the tables and views to the .accdb as linked tables. My forms all connect to data, but I am having issues
with a sub form. The sub form does not allow for creation of children records tied to the parent record the way the old db did/does.
Correct - old format .adp file (notice the empty second record in sub-form with the defaulted date of today's date):
Incorrect - new .accdb file (notice the lack of empty second record in sub-form like above):
If I click the create new record icon in the bottom of the subform, it creates a completely blank record not tied to the parent record (fields blacked out in screen shots above). When using this button all parent record fields are blank.
I have also verified the child table used in the sub-form has a valid Fky relationship to parent table used in the parent form.
Have you checked each forms 'Filter' property (in Design view) to make sure they are blank and that each forms 'Filter On Load' property to make sure it is set to 'No'? Also, you might try inserting the following commands in each forms On
Open event:
DoCmd.RunCommand acCmdRemoveAllFilters
DoCmd.ShowAllRecords
If you can open each forms Record Source and they are showing that new records are able to be entered (the new record * is showing at the bottom of the recordset), then check each forms On Load and On Open events to make sure there is no filtering.
In addition, check any macro or VBA commands behind the button that opens the main form to make sure there is no SQL filtering in the DoCmd.OpenForm command.
If one of the forms Record Source does NOT allow new records, then you will need to change that Record Source so the new record * indicator shows.
Out of ideas at this point. -
RH_INSERT_INFTY not creating new records
Hi All,
I am using the FM RH_INSERT_INFTY to insert new records in HRP1000.
See the below FM call :
CALL FUNCTION 'RH_INSERT_INFTY'
EXPORTING
fcode = 'INSE'
vtask = 'D'
order_flg = 'X'
commit_flg = 'X'
authy = 'X'
PPPAR_IMP =
OLD_TABNR = ' '
REPID = ' '
FORM = ' '
keep_lupd = keep_lupd
TABLES
innnn = it_i1000
EXCEPTIONS
no_authorization = 1
error_during_insert = 2
repid_form_initial = 3
corr_exit = 4
begda_greater_endda = 5
OTHERS = 6.
But instead of creating new records it is changing the existing record in HRP1000.
Actually I want to create new records with different long text and short text in different languages so in case object id and object type even the dates can be same but the language would be different.
So I need to create a new records with a different language key and different short text. But this function module is changing the existing object short text,long text and language.
Could you please reply at the earliest.
Thanks & Regards,
PoonamHi,
you're right, this function didn't create new record when i want to create a record with same object but have different language.
you can use this function for your problem : RH_INSERT_INFTY_DIRECT
i tried and it works.
CALL FUNCTION 'RH_INSERT_INFTY_DIRECT'
EXPORTING
vtask = 'V'
KEEP_LUPD =
tables
innnn = p1000
EXCEPTIONS
NO_AUTHORIZATION = 1
ERROR_DURING_INSERT = 2
REPID_FORM_INITIAL = 3
CORR_EXIT = 4
BEGDA_GREATER_ENDDA = 5
OTHERS = 6
Regards, -
Update new record in database table
I'm working with TestStand 4.2 and MySQL database with user-defined tables.
There is "test_results" table with autoincrement "id" (primary index).
I want to:
1. write a new record to the test_results table - some data and status "Running"
2. run a test (pass to a test sequence its "id", test uses this id for writing data to database)
3. update the record: set execution time and update status.
So, the steps are as below:
1. Open database
2. Open SQL statement: "select * from test_results".
3. Data Operation: operation - "Set and Put", record to operate on - "New - Create New Record". In the "Column/Parameter Values" tab I set the new record values.
Here I want to retrieve the new record "id". How to do it?
Thanks in advance.I am not sure how to implement this in Test Stand, but from an SQL programming perspective, you want to run:
SELECT @@IDENTITY
Here is a link to the description: http://msdn.microsoft.com/en-us/library/ms187342.aspx
It will retrieve the record ID of the row you just inserted. -
How can I make the popup with empty fileds and create new record?
I would like to use a popup to create new record.
I created a af:popup by drag and drop a VO from data control to jsff. then, I created a button and place a af:showPopupBehavior. I was able to popup window by click the button.
however, the window filled with the information from the 1st record. and when I select a record in table and click popup, the popup is filled with that record.
How can I make the popup with empty fileds and create new record by saving the popup?
ThanksYou can have edit and new buttons, in the PopupFetchEvent identify button source (using popupFetchEvent.getLaunchSourceClientId()) if new button clicked clear the binding using below code.
If you want to see empty fields, in the popup PopupFetchEvent clear the input component bindings.
resetBindingValue("#{bindings.<componentid>.inputValue}", null);
public static void resetBindingValue(String expression, Object newValue) {
FacesContext ctx = FacesContext.getCurrentInstance();
Application app = ctx.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = ctx.getELContext();
ValueExpression valueExp = elFactory.createValueExpression(elContext,expression,Object.class);
Class bindClass = valueExp.getType(elContext);
valueExp.setValue(elContext,newValue);
}
Maybe you are looking for
-
How many devices can sync to one apple ID?
How many devices can sync to one apple ID? I need to get all my music from an old computer to my new computer. I just purchased an album on my new computer and it's not syncing with my iPhone 5 and I don't want to pay $25 for the Cloud.
-
Why is it that Firefox is constantly having some kind of problem that IE does not have?
Same problem with Firefox but not with IE. I tried to click on an episode of NCIS Los Angeles that used to work just fine with Firefox; Project TV. It still works with IE but not Firefox. Everything with Firefox appears to be intermittent. In other w
-
Calling SQL stored procedure dynamically
Hallo, could anybody tell me how to call HANA SQL stored procedure dynamically? The coding looks like this: v_ProcedureName := '"' || KpiNamespace || '::' || KpiName || '"'; v_SQL := 'CALL ' || :v_ProcedureName || '( lt_outKPI )'; EXEC :v_SQL; For th
-
Greetings! I have an XM2go I would like to play through my Audigy 2 front panel. How do I get the card to recognize that I am connecting from an external source into the right and left channel aux inputs?
-
Regarding review the environment
Hi All, I would like to do an overall review the environment . Initial analysis of environment performance review Process chain analysis troubleshooting items Please give Detailed steps how to do?.