Updating value of for taxonomy attributes via ABAP API

Hi ,
We have table Product hierarchy repository in that we have Products table and ProductHierarchy table which is of type taxonomy .
The product hierarchy is assigned to each product as lookup taxonomy field.
Can anyone please let me know how we can update the values assgined to the attribute throght ABAP API.
Example we have the attribute called color which assigned to Product Hierarchy 'A' and this product hierarchy 'A' is attached to Material '111' and the attribute color will have value 'Blue' for material '111' now I want to update the value of color to 'Red' . How we can achieve this via the MDM ABAP API.
Regards,
Amar Kamat

If your question is how to change the value of an attribute for a specific product this is the solution:
Use IF_MDM_CORE_SERVICES->RETRIEVE( ) to retrieve the product record so that you have a populated structure of type MDM_PARAMETER. In this structure you will find the entry relating to the taxonomy field. The VALUE attribute of this line entry will be a reference to type MDM_TAXONOMY_ENTRY.
At this point you will want to take the TAXONOMY_ENTRY_ID and TAXONOMY_TABLE_CODE of this structure to retrieve the attributes. Using IF_MDM_CORE_SERVICE->RETRIEVE_ATTRIBUTES( ) and the attributes mentioned before you will get the results into a table of line type MDM_ATTRIBUTE_INFORMATION_SL.
Select the appropriate line from the result table based on the attribute name (ATTR_NAME). In the record of type MDM_ATTRIBUTE_INFORMATION_SL you will now want to select the appropriate line from the table found in field ATTR_FEATURE_DOMAIN. Find the appropriate attribute (in this case color) by VALUE_NAME and copy the VALUE_ID (type MDM_UNIQUE_ID).
Now back to where we left off in the original record (MDM_PARAMETER), loop through the table found at field TAXONOMY_ATTRIBUTES of the MDM_TAXONOMY_ENTRY looking in ATTR_INFO for the correct ATTR_NAME. When the correct entry is found, update the ATTR_FEATURE_DOMAIN with the new VALUE_ID and viola, you've got a mdm record ready to be updated.
Simply call IF_MDM_CORE_SERVICE-UPDATE( ) with the modified record and you've updated your attribute assignment.
In short:
Navigate to the MDM_TAXONOMY_ENTRY of the product record
Retrieve the attributes from the corresponding taxonomy table and navigate to the unique ID of the desired attribute
Navigate to the attribute within the record's MDM_TAXONOMY_ENTRY and update the VALUE_ID with the new unique ID
Update the product record
Regards,
Brian Dennett

Similar Messages

  • What are the different values available for type attribute

    Hi,
        I am working with IDOC to Stored Procedure. For each field we need to give the values for 'isInput' and 'type' attributes. I need to pass values for 'datetime' and 'numeric' fields. What are the list of values availabIe for 'type' attribute. I know only about 'CHAR' attribute.
         Can anybody please tell me what all the values availabe for attribute 'type'. I am facing this problem while giving the value for type attribute.
    Thanks in Advance,
    Murthy.

    Does this help
    tring
        Data that contains a combination of letters, numbers, and special characters. String data types are listed below:
    CHARACTER: Fixed-length character strings. The common short name for this data type is CHAR.
    VARCHAR: Varying-length character strings.
    CLOB: Varying-length character large object strings, typically used when a character string might exceed the limits of the VARCHAR data type.
    GRAPHIC: Fixed-length graphic strings that contain double-byte characters.
    VARGRAPHIC: Varying-length graphic strings that contain double-byte characters.
    DBCLOB: Varying-length strings of double-byte characters in a large object.
    |BINARY: A sequence of bytes that is not associated with a |code page.
    |VARBINARY: Varying-length binary strings.
    BLOB: Varying-length binary strings in a large object.
    |XML: Varying-length string that is an internal representation |of XML.
    Numeric
        Data that contains digits. Numeric data types are listed below:
    SMALLINT: for small integers.
    |INTEGER: for large integers.
    |BIGINT: for bigger values.
    DECIMAL(p,s) or NUMERIC(p,s), where p is precision and s is scale: for packed decimal numbers with precision p and scale s. Precision is the total number of digits, and scale is the number of digits to the right of the decimal point.
    |DECFLOAT: for decimal floating-point numbers.
    REAL: for single-precision floating-point numbers.
    DOUBLE: for double-precision floating-point numbers.
    Datetime
        Data values that represent dates, times, or timestamps. Datetime data types are listed below:
    DATE: Dates with a three-part value that represents a year, month, and day.
    TIME: Times with a three-part value that represents a time of day in hours, minutes, and seconds.
    TIMESTAMP: Timestamps with a seven-part value that represents a date and time by year, month, day, hour, minute, second, and microsecond.
    Regards
    Ravi

  • Exception Description: No conversion value provided for the attribute

    Hi!,
    The following is printed when I try to persist an entity with a an enum attribute in it. It deployted succuessfully and mapped fine a table, my configuration is, Windows2003, SJSAS 9 FCS, Derby DB.
    Exception [TOPLINK-115] (Oracle TopLink Essentials - 2006.4 (Build 060412)): ora
    cle.toplink.essentials.exceptions.DescriptorException
    Exception Description: No conversion value provided for the attribute [NEW].
    Mapping: oracle.toplink.essentials.mappings.DirectToFieldMapping[status-->REPORT
    .STATUS]
    Descriptor: RelationalDescriptor(com.namespace1.reports.persistence.Report --> [
    DatabaseTable(REPORT)])
    The Entity class is the following:
    * Report.java
    * Created on 25 ����� �����, 2006, 06:07 �
    * To change this template, choose Tools | Template Manager
    * and open the template in the editor.
    package com.namespace1.reports.persistence;
    import java.io.*;
    import java.util.*;
    import javax.persistence.*;
    * @author Administrator
    @javax.persistence.Entity(name="Report")//name used in EJB-QL.
    public class Report implements Serializable {
    public enum ReportStatus{
    NEW,
    OPEN,
    SUBMITTED,
    ACCEPTED,
    REJECTED
    @javax.persistence.Id
    @javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
    private long id;
    @Transient
    private int currentEntryId;
    @Column(length=256)
    private String title;
    private String ownerName;
    @Enumerated(EnumType.ORDINAL)
    @Basic
    private ReportStatus status;
    @OneToMany(mappedBy="report",targetEntity=ReportEntry.class,cascade=CascadeType.ALL)
    private Map<Integer,ReportEntry> reportEntries;
    /** Creates a new instance of Report */
    public Report() {
    public long getId() {
    return id;
    public void setId(long id) {
    this.id = id;
    public int hashCode() {
    int hash = 0;
    hash += (int)getId();
    return hash;
    public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Report)) {
    return false;
    Report other = (Report)object;
    if (this.getId() != other.getId()) return false;
    return true;
    public String toString() {
    return "com.namespace1.reports.persistence.Report[id=" + getId() + "]";
    public int getCurrentEntryId() {
    return currentEntryId;
    public void setCurrentEntryId(int currentEntryId) {
    this.currentEntryId = currentEntryId;
    public String getTitle() {
    return title;
    public void setTitle(String title) {
    this.title = title;
    public String getOwnerName() {
    return ownerName;
    public void setOwnerName(String ownerName) {
    this.ownerName = ownerName;
    public ReportStatus getStatus() {
    return status;
    public void setStatus(ReportStatus status) {
    this.status = status;
    public Map<Integer, ReportEntry> getReportEntries() {
    return reportEntries;
    public void setReportEntries(Map<Integer, ReportEntry> reportEntries) {
    this.reportEntries = reportEntries;
    }

    This problem is side effect of issue 193 (https://glassfish.dev.java.net/issues/show_bug.cgi?id=193) and is described in details in issue 634 (https://glassfish.dev.java.net/issues/show_bug.cgi?id=634). Your choices are to use the work around described in the above issue or switch to the GlassFish build with the fix.
    regards,
    -marina

  • How to give  Value set for model attribute?

    Hi all,
           How to give value set for model attribute?
           plz explain me with some sample code.
    Regards,
    Srinu

    Hi Srinivasulu,
    An attribute (of basic data types like integer , string etc) holds a single values.
    Please clarify by what you mean value set ?
    Also, share the structure of context.
    Regards,
    Kartikaye

  • ORA-35563: Multiple values exist for an attribute of this dimension member

    After following the tutorial Building OLAP Cubes I was trying to make a cube with aggregation down to the day instead of down to the month.
    I created a times table pretty similar to the one used in the tutorial:
    CREATE TABLE EVENT_TIMES (
            HOUR_KEY        DATE NOT NULL,
            DAY_ID          VARCHAR2(10),
            DAY_NAME        VARCHAR2(10),
            DAY_END_DATE    DATE,
            DAY_TIME_SPAN   NUMBER,
            MONTH_ID        VARCHAR2(30) NOT NULL,
            MONTH_NAME      VARCHAR2(40),
            MONTH_END_DATE  DATE,
            MONTH_TIME_SPAN NUMBER,
            YEAR_ID         VARCHAR2(30) NOT NULL,
            YEAR_NAME       VARCHAR2(40),
            YEAR_END_DATE   DATE,
            YEAR_TIME_SPAN  NUMBER
    As you can see, instead of a DAY_KEY like in the tutorial, I now use an HOUR_KEY.
    This is a sample of the data I inserted in this table:
    select to_char(hour_key,'YYYYMMDDHH24MISS'),DAY_ID,DAY_NAME,DAY_END_DATE,DAY_TIME_SPAN,MONTH_ID,MONTH_NAME,MONTH_END_DATE,MONTH_TIME_SPAN,YEAR_ID,YEAR_NAME,YEAR_END_DATE,YEAR_TIME_SPAN from event_times;
    TO_CHAR(HOUR_KEY,'YYYYMMDDHH24MISS') DAY_ID     DAY_NAME   DAY_END_DATE DAY_TIME_SPAN MONTH_ID                       MONTH_NAME                               MONTH_END_DATE MONTH_TIME_SPAN YEAR_ID                        YEAR_NAME                                YEAR_END_DATE YEAR_TIME_SPAN
    20140104050000                       Y2014M1D4  Y2014M1D4  04-JAN-14                1 Y2014M1                        Y2014M1                                  31-JAN-14                   31 Y2014                          Y2014                                    31-DEC-14                365
    20140104060000                       Y2014M1D4  Y2014M1D4  04-JAN-14                1 Y2014M1                        Y2014M1                                  31-JAN-14                   31 Y2014                          Y2014                                    31-DEC-14                365
    I then created my TIME dimension with DAY as the lowest level.
    When I try the maintain cube option it fails at the 'LOAD NO SYNCH' step with the rejected records having an error message that says:
    ORA-35563: (XSRWLD17) Multiple values exist for an attribute of this dimension member.
    To me, this is a very cryptic message and the only explanation I find online is:
    Cause
    Multiple source table rows containing different values for a dimension attribute were found. Only the first of the multiple rows has been loaded.
    Action
    Fix the mapping or remove the rows with conflicting attribute values..
    This confuses me. In the tutorial the lowest level was day and the TIMES table contained 1 record for each day.
    In my example, the lowest level is hour and the TIMES table contains 1 record for each hour.
    Which attribute has multiple values? And which values?
    The rejected records (101) are not very clear:
    ALIAS_1 = 'MONTH_Y2014M1' AND ALIAS_3 = to_date('31JAN14') AND ALIAS_4 = 31 AND ALIAS_5 = 'Y2014M1' AND ALIAS_6 = 'Y2014M1' AND ALIAS_7 = 'YEAR_Y2014'
    If anyone can help point me in the right direction, it would be greatly appreciated.

    I have seen this recently. The issue is with the dimension load itself.  You have a hour level record table but the rules relating to hierarchy/attribute values etc are checked/reinforced during the load and this error comes up sometimes.
    I would guess that the issue seems to be with your month level information present in the higher level month columns. There are many records corresponding to a single month in ur case, month of Y2014M1. Information relating to Month level member Jan 2014 or member MONTH_Y2014M1 is present in these records: 31 (days) *24 (hours) = 744 records. The data in these 744 records for columns - MONTH_ID, MONTH_NAME, MONTH_END_DATE, MONTH_TIME_SPAN need to be exactly the same in order for the single member MONTH_Y2014M1 to have month attributes loaded with valid values.
    For e.g: if records #1 to #743 contain month_timespan=31 but for some unknown reason record #744 contains month_timespan=30 then this error will come up. OLAP does not know which value to load (31 or 30), and only 1 value can be loaded onto the month level member corresponding to month Y2014M1.
    A quick check of the data should give you the answer. Typically there may be some mistake/invalid assumptions made with the boundary records (in your case, check for values for records corresponding to hour=0 or hour=23/24) which is causing the issue.
    HTH
    Shankar

  • Exception: No conversion value provided for the attribute [false]???

    I mapped Boolean data type of a class with using Toplink Workbench.
    I used convertor in mapping Boolean(java.lang.Boolean) to String (java.lang.String)
    to hide data in form of 'T' or 'F' at DB.
    But there is an exception ı cannot understand, toplink cannot convert from Boolean to String.
    [TopLink Finer]: 2007.07.16 10:03:03.125--DatabaseSessionImpl(7818028)--Thread(Thread[HTTPThreadGroup-5,5,HTTPThreadGroup])--acquire unit of work: 27663966
    [TopLink Finer]: 2007.07.16 10:03:03.125--UnitOfWork(27663966)--Thread(Thread[HTTPThreadGroup-5,5,HTTPThreadGroup])--TX binding to tx mgr, status=STATUS_ACTIVE
    [TopLink Finest]: 2007.07.16 10:03:03.125--DatabaseSessionImpl(7818028)--Thread(Thread[HTTPThreadGroup-5,5,HTTPThreadGroup])--Execute query ReadAllQuery(com.ebk.model.modules.personel.bordro.gostergeler.EkGosterge)
    [TopLink Warning]: 2007.07.16 10:03:03.187--DatabaseSessionImpl(7818028)--Thread(Thread[HTTPThreadGroup-5,5,HTTPThreadGroup])--Local Exception Stack:
    Exception [TOPLINK-115] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DescriptorException
    Exception Description: No conversion value provided for the attribute [false].
    Mapping: oracle.toplink.mappings.DirectToFieldMapping[ekGostergeTipi-->PER_EKGOSTERGE.EKGOSTERGETIPI]
    Descriptor: RelationalDescriptor(com.ebk.model.modules.personel.bordro.gostergeler.EkGosterge --> [DatabaseTable(PER_EKGOSTERGE)])
         at oracle.toplink.exceptions.DescriptorException.noAttributeValueConversionToFieldValueProvided(DescriptorException.java:969)
         at oracle.toplink.mappings.converters.ObjectTypeConverter.convertObjectValueToDataValue(ObjectTypeConverter.java:214)
         at oracle.toplink.mappings.foundation.AbstractDirectMapping.getFieldValue(AbstractDirectMapping.java:439)
         at oracle.toplink.internal.expressions.QueryKeyExpression.getFieldValue(QueryKeyExpression.java:198)
         at oracle.toplink.internal.expressions.ConstantExpression.printSQL(ConstantExpression.java:77)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1674)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.internal.expressions.RelationExpression.printSQL(RelationExpression.java:509)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1669)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1669)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1669)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1669)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.expressions.ExpressionOperator.printDuo(ExpressionOperator.java:1669)
         at oracle.toplink.internal.expressions.CompoundExpression.printSQL(CompoundExpression.java:216)
         at oracle.toplink.internal.expressions.ExpressionSQLPrinter.translateExpression(ExpressionSQLPrinter.java:238)
         at oracle.toplink.internal.expressions.ExpressionSQLPrinter.printExpression(ExpressionSQLPrinter.java:106)
         at oracle.toplink.internal.expressions.SQLSelectStatement.printSQL(SQLSelectStatement.java:1183)
         at oracle.toplink.internal.expressions.SQLSelectStatement.buildCall(SQLSelectStatement.java:611)
         at oracle.toplink.publicinterface.Descriptor.buildCallFromStatement(Descriptor.java:558)
         at oracle.toplink.descriptors.ClassDescriptor.buildCallFromStatement(ClassDescriptor.java:191)
         at oracle.toplink.internal.queryframework.StatementQueryMechanism.setCallFromStatement(StatementQueryMechanism.java:371)
         at oracle.toplink.internal.queryframework.StatementQueryMechanism.prepareSelectAllRows(StatementQueryMechanism.java:297)
         at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.prepareSelectAllRows(ExpressionQueryMechanism.java:687)
         at oracle.toplink.queryframework.ReadAllQuery.prepareSelectAllRows(ReadAllQuery.java:699)
         at oracle.toplink.queryframework.ReadAllQuery.prepare(ReadAllQuery.java:666)
         at oracle.toplink.queryframework.DatabaseQuery.checkPrepare(DatabaseQuery.java:405)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.checkPrepare(ObjectLevelReadQuery.java:552)
         at oracle.toplink.queryframework.DatabaseQuery.checkPrepare(DatabaseQuery.java:375)
         at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:598)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
         at oracle.toplink.queryframework.ReadAllQuery.execute(ReadAllQuery.java:451)
         at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2073)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:988)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:945)
         at com.ebk.service.FacadeBaseBean.findAllClassRecordsByAtrrs(FacadeBaseBean.java:213)
         at com.ebk.service.FacadeBaseBean.findAllClassRecordsByAtrrs(FacadeBaseBean.java:78)
         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:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at GostergeFacadeBean_LocalProxy_17mbg0c.findAllClassRecordsByAtrrs(Unknown Source)
         at com.ebk.modules.personel.beans.bordro.gostergeler.EkGostergeBean.isRecordExist(EkGostergeBean.java:500)
         at com.ebk.modules.personel.beans.bordro.gostergeler.EkGostergeBean.action_Kaydet(EkGostergeBean.java:593)
         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:585)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:130)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
         at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
         at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
         at oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401)
         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:620)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:215)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Cihangir

    Configuring an object-type converter on a direct to field mapping to handle this case is very common. Please review your configuration and provide us more specific on how you configured the mapping and its converter.
    Doug

  • MDM Security for taxonomy attributes

    Hi,
    I have created a taxonomy and linked attributes to it in MDM 5.5 SP6. I do not want users to populate or change the attribute values in Data Manager after they have assigned a part to a taxonomy node. That will be done with xml via Import Server.
    I see that I can set Change Tracking on Taxonomy[Attributes], but I don't see any way in the Roles - Functions/Tables and Fields or in the Configuration options in Data Manager to allow users to see the attributes and their values but not change the values.
    thanks!
    Morgan Hinkle

    Hi Morgan,
    Is there any way to allow them to set the taxonomy node per part, but not modify the associated attributes?
    Yes, this is possible for a user in taxonomy mode of Data Manager.
    Go to Console, Open Repository> Admin>Roles>Functions>Taxonomies-->Modify linked Attributes.
    So you need to navigate up-to Modify Linked Attributes and Set Access as None. Set this role only to that particular user which is not allowed to Changed linked(associated) attributes with category in taxonomy mode. You can also set Add Attributes and Modify Attributes access to None for that user as per your requirement.
    Note: This function is applicable, when that user select Category table as current table in Taxonomy mode of Data Manager. This is working fine at my end. But if you are talking about this taxonomy associated Attributes get not changed by User from Main table record for that specific user (I mean a record in main table is associated with a category where this category is linked with some attributes and you want no user can change these attribute values in main table), then as per my understanding this is not possible because as designed, every action done within a Taxonomy node (add, update, remove) is considered to be an update to the main record, thus it has only one entry in the Roles >>tables and Fields tab (which is the Taxonomy look-up field of the main table). I firmly believe that MDM does not support this functionality as of now.
    Check for similar reply from SAP for Qualified table in below thread.
    Data Manager Security on qualified table
    Regards,
    Mandeep Saini

  • How to modify default value of Login Shell attribute via script

    Hi all,
    I'm configuring the "UNIX Attributes" tab here in Active Directory Users and Computers. I've noticed that on the Login Shell option it has a default value: /bin/sh. So I had manually changed it to: /bin/bash.  I just change this value one
    bu one manually.  Now, I want to change this value for all users via script. Could you please help me to receive this goal?
    Thank you in advance.

    Use Get-AdUser / Set-AdObject
    Get-AdUser -Filter * | Set-AdObject -Replace @{unixhomedirectory='/bin/sh','bin/bash'} -WhatIf
    ¯\_(ツ)_/¯

  • Setting up Custom Priorities for Taxonomy Attributes through Import Manager

    Hi,
    I want to set priority for "n" number of characteristics through Import Manager.
    I know Import manager allows us to set priority to one of the following : "Highest" "High" "Normal" "Low" "Lowest". But I have a requirement to set custom priority for each of the attribute through Import manager so as to avoid manual intervention.
    Has anybody worked on this before?
    Regards,
    Amol.

    Hi,
    Which special properties you are talking about ?
    I will just brief you the concepts of Hierarchy and Taxonomy
    Hierarchy
    Node1
    -    Node11
    -   Node12
    Node2
    -    Node21
      --         Node211
    Only leaf nodes can be assigned at the time of record creation.
    Taxonomy
    Used when particular hierarchy nodes needs some extra fields.
    Example: If your hierarchy is like
    Cars
        - Fiat
        - Maruti
    Bikes
        - Hero Honda
        - Bajaj
    Now for Cars, i want to store its Price but for Bikes i am not interested in Price but I want the Colour info. Now if you create the Price and Colour as fields of the repository then for all the records whose category is Cars will have NULL value for Colour and reverse in case of Bikes. Hence the concept of Taxonomy is introduced so that you can assign the fields (known as attributes) to the Nodes of the hierarchy.
    For Taxonomy Import, refer the below links
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/30aa1447-80a1-2a10-e483-a76087bcb12f
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/6090d0bd-1da7-2a10-468f-bdd17badb396
    Regards,
    Jitesh Talreja

  • HeLp: Filling an attribut via ABAP

    Hi all,
    Can anyone give an example of
    ABAP code to fill an attribut via exits ? 
    Thanks in advance,

    Ashwin,
    I'm willing to fill that attribut anyway I can, in transfer routine or in report or other way.
    As I wrote I need suggestions 'cos I don't have experience doing such a thing before.
    So what's the easiest and most efficient way ?
    ( To summarize the problem:
    +
    I use <b>2LIS_13_VDITM</b> extractor, where I have the order number as <b>OCOORDER</b> infoobject   
    I reach the related <b>WBS element</b> via COORDER_0WBS_ELMT navigation attribut of 0COORDER.
    That WBS element also exists in PROJ table in PSPID field.
    What I need is to get project description from POST1 field of the same PROJ table.
    So according to Roberto Negro's reply, I have to add an attribute to OCOORDER definition and then fill it via exit with ABAP code.+ )
    Hope it's more clear now..

  • How to generate the User-Input XML Body for executing workflows via REST APIs: The Solution

    I see that executing a workflow via REST APIs requires lot of work to be done just to prepare the right User-input XML body. Any mistake and you have some major debugging to do. Larger the number of User-Inputs, the bigger is the problem.Life is so much easier at the WFA GUI with Display names and tooltip help for User Inputs which are very easy for reading and providing the right values. I don't have any such privileges when manually preparing the User-Input XML body.It’s been asked numerous times how to provide User-Input values for type table, or Query (Multi-Select) etc. These are complex User-Input types and has lots of scope for user mistakes.I can have User-input dependency at WFA GUI which allows me to make the right selection, but while preparing my XML body I need to take care of it myself.An operator is allowed to execute workflows, but the same Display names which help him make the right user-inputs, makes it impossible for him to prepare the user-input body xml. Display names can't be used in in XML body and he can't know the exact parameter names by looking at the Display names. So he need to always contact the Admins/Architects for this. And Architects/Admins can't be expected to keep providing User-Input XML body to operators every operator. How about if I could enter all the User-Input values in my workflow execution at WFA GUI, I can do a preview which passed to my satisfaction and then I can magically get the XML body for it which I can use to execute my workflow from REST APIs from any client. It could be so very much easy for me than building my User-Input XML body manually. This is exactly what I'm going to give you right now. You open the WFA in browser, Go to your workflow, Start execution, you input values from GUI reading carefully the display names, preview it to your satisfaction and then get the XML body. Assume your workflow is called “Workflow to Print a given Message”. It’s a simple workflow with only 1 user-input Displayed as "Message to Print" Prerequisites:  The following are the one-time prerequisites. You need PowerShell 3.0 on your WFA server.Import the attached Generate_Workflow_User_Input_Body_in_XML.dar in your WFA. It’s our magical command called "Generate Workflow User Input Body in XML"Add credentials of a WFA Admin/Architect in you WFA itself with Name/IP: localhostMatch: ExactType: OtherName/IP: localhostUsername: <WFA Admin/Architect Username>Password: <User Password>   Steps: Suppose you have a workflow called "Workflow to Print a given Message". You want to execute it from REST apis and need to prepare the user input XML body.  Select this workflow and clone it. The workflow clone is the exact copy of your original workflow word by word, input-by-input. It will open in Edit mode with name "Workflow to Print a given Message - copy".Add the command "Generate Workflow User Input Body in XML" at the beginning of your workflow. This is a must. This command need to be the first command in your cloned workflow.This command requires no input. So for its Parameters just press okay and save the workflow.You are done.Now Execute the clone workflow. You'll see all the user-inputs available to you. Make your choices as you wish. Preview it to confirm that planning is passed and u have no errors.Execute it now.You'll see that the our magical command "Generate Workflow User Input Body in XML" has failed in our clone workflow execution. Don't worry, its fate was decided to be so. But it didn't fail before giving me what I really wanted. i.e. my XML body for my real workflow. It displayed it in the GUI as well as saved it in your WFA server @ C:\temp\<workflow_name_dd_MM_yyyy_hh_mm_ss_.xmlIt also deleted all the reservations of this particular failed job. So NO major residue left to be cleaned.To summarize: Clone Your workflow and Add the command "Generate Workflow User Input Body in XML" as your first command.    Start Execution, provide your User-inputs and preview it. Be satisfied and Press Okay.   Now Execute it.  After a few scconds this cloned workflow will fail with Error "All done. The Workflow will fail now."     See the command execution logs for this command. You'll see the User-Input XML body. It has also saved the XML file at C:\temp in your WFA server.   Have fun. sinhaa  

    Providing a new version 1.1.0 of the command "WFA Schedular" Changes made: Added conditional String Representation based on the Scheduling parameter provided. Provided check for the right number of parameters passed into the command.Added a new parameter "Expiry Date" to automatically stop the recurring execution upon expiry.Check for Posh3.0 version in code.Have Fun!! sinhaa Below example for:Schedule a workflow for recurring execution every alternate day i.e. once in 2 days at 10:30 PM starting 06-Jul-2015 (Today's date is 02-Jul-2015) . The recurring workflow execution  should expire on 31-Dec-2015 and stop.  

  • Maintain texts for Infotype 0019 via ABAP.

    Hi,
      The issue is related to maintaining texts for Infotype 0019. I have a program below. The main problem is I am facing is for some records it inserts text in Infotype (0019) but for some it does not. Can anyone suggest why so or a way to resolve this problem ???
    REPORT  ytbctest009.
    TABLES: pernr, pcl1.
    INFOTYPES: 0019.
    DATA:  key LIKE pskey.
    DATA: BEGIN OF ptext OCCURS 200.
    DATA:   line(72).
    DATA: END OF ptext.
    SELECTION-SCREEN BEGIN OF BLOCK abc WITH FRAME TITLE text-001.
    PARAMETERS:               p_pernr LIKE pernr-pernr.
    SELECTION-SCREEN END OF BLOCK abc.
    ptext-line = 'TEST 1'.
    APPEND ptext.
    ptext-line = 'Test 2'.
    APPEND ptext.
    ptext-line = 'Test 3'.
    APPEND ptext.
    rp-read-infotype p_pernr 0019 0019 '18000101' '99991231'.
    SORT p0019 DESCENDING.
    READ TABLE p0019 INDEX 1.
    p0019-itxex = 'X'.
    MOVE-CORRESPONDING p0019 TO key .
    CALL FUNCTION 'HR_INFOTYPE_OPERATION'
      EXPORTING
        infty         = '0019'
        number        = p_pernr
        validityend   = p0019-endda
        validitybegin = p0019-begda
        record        = p0019
        operation     = 'MOD'.
    EXPORT ptext TO DATABASE pcl1(tx) ID key. 
    Thanks in advance.

    Hi Rajashree,
    I hope , below code will solve the problem.
    <b>Main Code</b>
    FUNCTION zhr_mustus_update_it0019.
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(IM_PERNR) TYPE  P0019-PERNR OPTIONAL
    *"     VALUE(IM_USRID) TYPE  PA0105-USRID OPTIONAL
    *"     VALUE(IM_SUBTY) TYPE  P0019-SUBTY
    *"     VALUE(IM_TERMN) TYPE  P0019-TERMN OPTIONAL
    *"     VALUE(IM_MNDAT) TYPE  P0019-MNDAT OPTIONAL
    *"     VALUE(IM_BVMRK) TYPE  P0019-BVMRK OPTIONAL
    *"     VALUE(IM_TEXT) TYPE  CHAR30 OPTIONAL
    *"  EXPORTING
    *"     VALUE(EX_RETURN_MESSAGE) TYPE  STRING
    *"     VALUE(EX_MESSAGE_ID) TYPE  ARBGB
    *"     VALUE(EX_MESSAGE_NUMBER) TYPE  MSGNR
    *"  EXCEPTIONS
    *"      SYSTEM_FAILURE
    *"      COMMUNICATION_FAILURE
      REFRESH bdcdata.
      REFRESH it_bdc_message.
    * Validations
      PERFORM validations USING im_usrid im_subty im_mndat
                       CHANGING im_pernr
                                g_task_date
                                g_rem_date.
    * Return message
      MOVE:
        g_message TO ex_return_message,
        'ZMSGHR'  TO ex_message_id,
        g_msgno   TO ex_message_number.
    * If there any error don't process
      CHECK ex_return_message IS INITIAL.
    * If reminder date is missing then its creation
      IF im_mndat IS INITIAL.
    * Fill BDC for PA30 Creation
        PERFORM fill_bdc_for_creation USING im_pernr
                                            im_subty
                                            im_text
                                            g_task_date
                                            g_rem_date.
      ELSE.
    * Its a change, Fill BDC for PA30 change
        PERFORM fill_bdc_for_change USING im_pernr
                                          im_subty
                                          im_termn
                                          im_bvmrk
                                          im_text.
      ENDIF.
    * Call transaction PA30
      PERFORM bdc_call_transaction.
    * Return message
      MOVE:
        g_message TO ex_return_message,
        g_msgid   TO ex_message_id,
        g_msgno   TO ex_message_number.
    ENDFUNCTION.
    <b>All Above Subroutines,</b>
    *& Form  Validations
    *  Validations for MUS/TUS
    *      -->U_USRID      User id for TUS
    *      -->U_SUBTY      Subtype 10 - MUS, 11 - TUS
    *      -->U_MNDAT      Reminder date
    *      <--PERNR        Person for MUS
    *      <--U_TASK_DATE  Task date
    *      <--U_REM_DATE   Reminder date
    FORM validations USING u_usrid     LIKE pa0105-usrid
                           u_subty     LIKE p0019-subty
                           u_mndat     LIKE p0019-mndat
                  CHANGING u_pernr     LIKE p0019-pernr
                           u_task_date LIKE sy-datum
                           u_rem_date  LIKE sy-datum.
      DATA:
        BEGIN OF it_tmp_0019 OCCURS 0,
         termn LIKE pa0019-termn,
        END OF it_tmp_0019.
      CLEAR g_message.
    * Validations for MUS
      IF u_subty EQ c_subty_10.
        MOVE sy-datum TO u_task_date.
        IF u_pernr IS INITIAL.
    * Person number is missing
          MOVE:
            text-001 TO g_message,
            '003' TO g_msgno.
        ELSEIF u_mndat IS INITIAL.
    * Its creation, check if there is already a open item
          SELECT pernr
            FROM pa0019
            INTO u_pernr
           WHERE pernr EQ u_pernr
             AND subty EQ u_subty
             AND bvmrk NE '2'.
            EXIT.
          ENDSELECT.
          IF sy-subrc EQ 0.
    * Throw an error if there is already a open item
            MOVE:
              text-006 TO g_message,
              '004'    TO g_msgno.
          ENDIF.
        ENDIF.
      ENDIF.
    * Validations for TUS
      IF u_subty EQ c_subty_11.
        IF u_usrid IS INITIAL
       AND u_pernr IS INITIAL.
    * User/Person number is missing
          MOVE:
            text-002 TO g_message,
            '005'    TO g_msgno.
        ELSEIF NOT u_usrid IS INITIAL.
          SELECT pernr
            FROM pa0105
            INTO u_pernr
           WHERE usrid EQ u_usrid.
          ENDSELECT.
          IF u_pernr IS INITIAL.
    * Person number is missing
            MOVE:
              text-001 TO g_message,
              '006' TO g_msgno.
          ENDIF.
        ENDIF.
        IF g_message IS INITIAL.
          SELECT termn
            FROM pa0019
            INTO TABLE it_tmp_0019
           WHERE pernr EQ u_pernr
             AND subty EQ u_subty
             AND bvmrk NE '2'.
          READ TABLE it_tmp_0019 WITH KEY termn = sy-datum.
    * There is no open task for today
          IF sy-subrc NE 0.
            MOVE sy-datum TO u_task_date.
          ELSE.
    * There is a open task for today, new task should be created next
    * available date and reminder date is yesterday's date
            SORT it_tmp_0019 DESCENDING.
            READ TABLE it_tmp_0019 INDEX 1.
            u_task_date = it_tmp_0019-termn + 1.
            u_rem_date = sy-datum - 1.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    "VALIDATIONS
    *& Form  Fill_bdc_for_creation
    *  BDC data for creation , Transaction PA30
    *      -->U_PERNR      Person
    *      -->U_SUBTY      Subty MUS - 10, TUS - 11
    *      -->U_TEXT       Text
    *      -->U_TASK_DATE  Task date
    *      -->U_REM_DATE  Task date
    FORM fill_bdc_for_creation USING u_pernr LIKE p0019-pernr
                                     u_subty LIKE p0019-subty
                                     u_text  TYPE char30
                                     u_task_date LIKE sy-datum
                                     u_rem_date  LIKE sy-datum.
    * Scree1
      DATA:
        l_task_date(10),
        l_rem_date(10).
    * Use system date as Task date
      WRITE:
        u_task_date TO l_task_date,
        u_rem_date TO l_rem_date.
      PERFORM bdc_dynpro      USING 'SAPMP50A' '1000'.
      PERFORM bdc_field       USING 'RP50G-PERNR'
                                    u_pernr.
      PERFORM bdc_field       USING 'RP50G-CHOIC'
                                    '0019'.
      PERFORM bdc_field       USING 'RP50G-SUBTY'
                                    u_subty.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=INS'.
    * Screen2
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_task_date.
      IF NOT u_rem_date IS INITIAL.
        PERFORM bdc_field       USING 'P0019-MNDAT'
                                       l_rem_date.
      ENDIF.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_task_date.
      IF NOT u_rem_date IS INITIAL.
        PERFORM bdc_field       USING 'P0019-MNDAT'
                                       l_rem_date.
      ENDIF.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=UPD'.
    ENDFORM.                    "fill_bdc_for_creation
    *& Form  fill_bdc_for_change
    *  BDC data for change , Transaction PA30
    *      -->U_PERNR    Person
    *      -->U_SUBTY    subtype MUS - 10 , TUS - 11
    *      -->U_MNDAT    Reminder date
    *      -->U_BVMRK    Status
    *      -->U_TEXT     Text
    FORM fill_bdc_for_change USING   u_pernr LIKE p0019-pernr
                                     u_subty LIKE p0019-subty
                                     u_termn LIKE p0019-termn
                                     u_bvmrk LIKE p0019-bvmrk
                                     u_text  TYPE char30.
    * Scree1
      DATA l_termn_date(10).
      WRITE u_termn TO l_termn_date.
      PERFORM bdc_dynpro      USING 'SAPMP50A' '1000'.
      PERFORM bdc_field       USING 'RP50G-PERNR'
                                    u_pernr.
      PERFORM bdc_field       USING 'RP50G-CHOIC'
                                    '0019'.
      PERFORM bdc_field       USING 'RP50G-SUBTY'
                                    u_subty.
      PERFORM bdc_field       USING 'RP50G-BEGDA'
                                    l_termn_date.
      PERFORM bdc_field       USING 'RP50G-ENDDA'
                                    l_termn_date.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=MOD'.
    * Screen2
      PERFORM bdc_dynpro      USING 'MP001900' '2000'.
      PERFORM bdc_field       USING 'P0019-TMART'
                                    u_subty.
      PERFORM bdc_field       USING 'P0019-TERMN'
                                     l_termn_date.
      PERFORM bdc_field       USING 'RP50M-TEXT1'
                                    u_text.
      PERFORM bdc_field       USING 'P0019-BVMRK'
                                    u_bvmrk.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=UPD'.
    ENDFORM.                    "fill_bdc_for_change
    FORM bdc_call_transaction.
      DATA:
        l_mode(1) TYPE c VALUE 'N',
        l_lines   TYPE i,
        l_msgvar1 LIKE balm-msgv1,
        l_msgvar2 LIKE balm-msgv2,
        l_msgvar3 LIKE balm-msgv3,
        l_msgvar4 LIKE balm-msgv4.
      CALL TRANSACTION 'PA30'  USING bdcdata  MODE l_mode
                               MESSAGES INTO it_bdc_message.
    * Get last message
      DESCRIBE TABLE it_bdc_message LINES l_lines.
      READ TABLE it_bdc_message INDEX l_lines.
      MOVE:
        it_bdc_message-msgid TO g_msgid,
        it_bdc_message-msgnr TO g_msgno,
        it_bdc_message-msgv1 TO l_msgvar1,
        it_bdc_message-msgv2 TO l_msgvar2,
        it_bdc_message-msgv3 TO l_msgvar3,
        it_bdc_message-msgv4 TO l_msgvar4.
    * Prepare message
      CALL FUNCTION 'MESSAGE_PREPARE'
        EXPORTING
          language               = sy-langu
          msg_id                 = g_msgid
          msg_no                 = g_msgno
          msg_var1               = l_msgvar1
          msg_var2               = l_msgvar2
          msg_var3               = l_msgvar3
          msg_var4               = l_msgvar4
        IMPORTING
          msg_text               = g_message
        EXCEPTIONS
          function_not_completed = 1
          message_not_found      = 2
          OTHERS                 = 3.
      IF sy-subrc <> 0.
        MOVE text-005 TO g_message.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    *        Start new screen                                              *
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
    *        Insert field                                                  *
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "BDC_FIELD
    Cheers.
    Santosh.

  • LDAP connection for user attribute via webdynpro code

    Hello,
    Kindly help for below issue
    point1
    While connecting to LDAP exception of simple bind failed is coming. code is as below
              try {
                   Hashtable env = new Hashtable();
                   env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
                   env.put("java.naming.provider.url", "ldap://10.77.16.220");
                   env.put("java.naming.security.authentication", "simple");
                   env.put(Context.SECURITY_PROTOCOL,"ssl");
                   env.put("java.naming.security.principal", "sapuser");
                   env.put("java.naming.security.credentials", "voda@12345");
                   DirContext ctx;
                   ctx = new InitialDirContext(env);
                   // Create search controls
                   SearchControls controls = new SearchControls();
                   controls.setCountLimit(0);
                   controls.setTimeLimit(0);
                   controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                   // Create filter
                   String filter = "(sAMAccountName= *)";
                   // Run search
                   NamingEnumeration results = ctx.search("OU=OUs,DC=mycomp,DC=com", filter, controls);
                   //wdComponentAPI.getMessageManager().reportSuccess(results);
              } catch (NamingException e) {
                   // TODO Auto-generated catch block
                   //e.printStackTrace();
                   wdComponentAPI.getMessageManager().reportSuccess(e.getMessage());
    point 2
    is there any method available in this API to reset pasword of user in LDAP ?
    thank you in advance
    B

    Hello,
    If you need this info, you will have to create a password policy that log last logon time.
    But be carefull with this function, it can create a lot of cpu load.
    <http://docs.sun.com/app/docs/doc/820-4809/fhkrj?l=en&n=1&a=view>
    Regards
    Eric.

  • How to create numeric attribute using ABAP API

    Hi experts
    I'm trying to create a numeric attribute for a taxonomy table. In the how-to-examples there are only ways to create text attributes.
    Those who have tried, please let me know the steps.
    I have given below the code snippet which i tried to create numeric attribute. Please let me knw the missing link.
    ls_num_attr_val-rating = 500.
        APPEND ls_num_attr_val TO ls_ext_attr_info-characteristics.
      ls_ext_attr_info-attr_info-attr_id-id = lv_attribute_id.
           APPEND ls_ext_attr_info TO lt_ext_attr_info.
        GET REFERENCE OF lt_ext_attr_info INTO lv_data.
        ls_namevalue-value = lv_data.
        ls_namevalue-code = 'ACCT'.
        APPEND ls_namevalue TO ls_parameter-name_value_pairs.
        lv_string = 'Customer 12'.
        GET REFERENCE OF lv_string INTO lv_data.
        ls_namevalue-value = lv_data.
        ls_namevalue-code = 'CUST_NAME'.
        APPEND ls_namevalue TO ls_parameter-name_value_pairs.
        CALL METHOD lr_api->mo_core_service->create
          EXPORTING
            iv_object_type_code = 'ACCT_TYPE'
            is_parameter        = ls_parameter
            iv_parent_id        = 0
          IMPORTING
            ev_new_internal_id  = lv_key.
    Thanks
    SwarnaDeepika
    Edited by: SwarnaDeepika on Dec 19, 2009 4:38 PM

    Hello Ashok,
    [here|https://help.sap.com/javadocs/MDM/current/com/sap/mdm/examples/CreateField.html] is the Java API of the needed command.
    There is also an example of how to create a field. You can use the class by replacing the strings for the server, repository, table, etc. to your needs.
    If you want to create more than one field, simply use a loop, like the for-loop, while-loop, etc.
    Hope this helps.
    Best regards
    Dominik

  • Update the billtopartysiteid for particular cart using plsql API

    Hi all,
    i need to update the billtoparty_site_id in the particular cart the using aso_quote_headers.pkg.
    its throws the Your cart has been updated by another member. We have reloaded it for you.
    an one plaease help me to update the billtiparty_site id for the particular cart.
    Regards,
    M.Soundrapandian.

    Please post the details of the application release, database version and OS.
    Please see if these docs help.
    Using TCA API's Including Examples [ID 201243.1]
    How to use the TCA API's in MOAC Environment ? [ID 412996.1]
    Unable To Update Credit_Hold Flag Through HZ_CUSTOMER_PROFILE_V2PUB.update_customer_profile API [ID 876320.1]
    Customer Interface Does Not Update All Expected Columns in the Customer Form [ID 153159.1]
    Need An Api To Update Collector To A Different Collector In The Customer Master. [ID 743875.1]
    If you still get the same error, please post the code you are using. Also, enable trace on the concurrent program, submit it and check the contents of the concurrent request log file.
    Thanks,
    Hussein

Maybe you are looking for

  • Hp laserjet pro 200 color MFP M276n not printing PDF documents

    Hello I am having problems printing PDF documents from our hp laserjet pro 200 color MFP M276n. I get a blank sheet of paper and a message on the printer saying 49 service error - turn off then on I can print word/excel documents. Many thanks Karen

  • HT2488 How do I create a workflow in Automator or a script in AppleScripts to download an excel file from a specific webpage?

    I would like to create a workflow in Automator or a script in AppleScript (or a combination of the two), that opens Safari to a specified page and downloads an excel file from this page and saves the downloaded document to my desktop. Is this somethi

  • LinkToAction in a Table

    Hi, I have a report shown in a view in form of a table. Suppose the report shows: Purchase order number, Currency and Total Amount. These information comes from a BAPI in SAP. Now when user clicks on the Purchase order number, a view with Purchase or

  • 1099 filing

    Hello Expert    What is diffrence in s_p00_07000134 and S_PL0_09000314 if both are for reporting ?

  • Query on Database Vault

    Hi, I am new to Database Vault, and I have set it up in a test environment to explore it. I have a question because my setup is behaving little differently compared to what a book says. From what I am reading in the book, it says after setting up Dat