User defined field with Linked Table property

Hi All,
I know this has been posted several times but I cannot get this to work.  I am trying to add a user defined field and link it to a table. 
I am getting the error "The field 'Related Table' should consist of 8 alphanumeric characters with no valid or default values " 
Everything I check says that the code I am using is correct.  Is it possible the problem is that I am trying to connect to an SAP table instead of a user defined table.  Is it possible to link a user defined field to an SAP table?
My code below:
                oUserFieldsMD.TableName = "OITM"
                oUserFieldsMD.Name = "SHP"
                oUserFieldsMD.Description = "Must ship via"
                oUserFieldsMD.LinkedTable = "OSHP"
                oUserFieldsMD.Type = SAPbobsCOM.BoFieldTypes.db_Alpha
                oUserFieldsMD.SubType = SAPbobsCOM.BoFldSubTypes.st_None
                oUserFieldsMD.EditSize = 8
                oUserFieldsMD.Size = 8
                oUserFieldsMD.Mandatory = SAPbobsCOM.BoYesNoEnum.tNO

Hello  Karen,
you cannot link a userfield to a system table. it has to be link to a user table.
oUserFieldsMD.LinkedTable = "OSHP"
when you have error, just try to do it using the same value in the application. If you cannot do it, it means you cannot do it neither with the DI

Similar Messages

  • User Defined Field with Link Type

    I am trying to create a user defined field to allow users to attach word documents to Item Master Data.
    I have successfully created a User Defined Field under master data with Type: Data, Structure: Link.
    It appears in the Item Master Data as I would expect. My questions relates to how to use this field. The first time I click on the field, a file browser window appears where I can select a file. Once I select the file I want I click ok and the path to this file appears in the field. The next time that I click on the field the file will open in its respective application.
    My question is: How when the field already contains a path to a file do I change this path so it points to a different file.
    Any help I can get on this would be greatly appreciated.

    If you hold down Ctrl on your keyboard and then double click in the link it will allow you to browse to a different file.

  • Linking a User Defined Field in Items table

    How to Link a User Defined Field in 'Item Master Data' table, to my own User Defined Table?
    In Item Master Data table, I want to add 3 User Defined Fields, for e.g, Country, State and Region.
    When the value of Country combo is changed, values loaded in State and Region combos should change automatically.
    I'm storing the relationship between Country,State and Region in my own user defined table. I want to load the comboboxes with a query from that table.
    Or, if there's no solution to the above problem:
    when the Item Master data table is opened, can we launch our own form?
    Is there a way to specify that?
    Please reply me back.. I'm a beginner learning SAP.
    With Thanks in advance,
    Key: Loading a user defined field through Query defined by us.

    You should search this forum on user defined fields as you will find many posts that may assist you with your question.

  • User-defined field in existing table

    I would like to know if it is possible to add a user-defined field in an existing table.
    Actually, I would like to add a combobox with other types of partners than vendors, customers and leads and add a user-defined field in the OCRD table.
    Thank you

    Your answers help me a lot !
    My code is working, i.e. when I create a new BP and choose another type in my comboBox, the information is saved.
    When I search a BP who has this type, SAP find the good BP.
    But, I don't see where the data is stored, I don't see anything which make the difference between 2 BP with 2 different types in the OCRD table.
    So, where SAP can make the difference?
    Thank you
    Message was edited by: Thibault Romieu

  • Can't remove a user defined field with DI API.

    I'm using the code below to remove a user field.  However, the first time I run it, I get the message that:
    "Ref count for this object is higher then 0"
    The second time I run it, I get the message that:
    "No matching records found (ODBC -2028)"
    As you can see, I am killing the UserFieldsMD object.  In fact, when the function is entered, the object is nothing but later instantiated with oCompany.
    The result in both cases is that the field doesn't get removed.  What am I missing?  Any ideas?
        Public Function RemoveUserField(ByVal FieldName As String, ByVal TableName As String, ByRef ErrMsg As String) As Boolean
            Dim Result As Boolean = False
            Dim Err As Integer
            Dim oUserFieldsMD As SAPbobsCOM.UserFieldsMD
                If Not FieldExists(TableName, FieldName) Then
                    Result = True
                    oUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
                    With oUserFieldsMD
                        .TableName = TableName
                        .Name = FieldName
                        Err = .Remove
                        If Err Then
                            oUtilCompany.GetLastError(Err, ErrMsg)
                            If ErrMsg = "No matching records found (ODBC -2028)" Then
                                Result = True
                                ErrMsg = "Was not able to remove field " & FieldName & " from table " & TableName & " programmatically." & vbCrLf & _
                                         "Please remove it manually using the Tools menu."
                            End If
                            Result = True
                        End If
                    End With
                End If
            Catch ex As Exception
                Throw ex
            End Try
            Return Result
        End Function
        Public Sub KillObject(ByRef Obj As Object)
            If Not Obj Is Nothing Then ObjectRelease(Obj)
        End Sub
        Private Sub ObjectRelease(ByRef Obj As Object)
            'This routine releases objects that were acquired with oCompany.GetBusinessObject().
            Obj = Nothing
        End Sub

    Hi Mike,
    The issue with your code is that you are not calling the GetByKey method of the field object. Until you do this the FieldID property is 0 so when the Remove method is called it will not try and remove the correct UDF (if you run SQL profiler then you'll see that SBO is looking for the UDF based on the table and fieldID values).
    Something like the following works for me:
    private void DeleteUDF(string sTableID, string sFieldName)
        SAPbobsCOM.UserFieldsMD sboField = (SAPbobsCOM.UserFieldsMD)_sboCompany.GetBusinessObject(BoObjectTypes.oUserFields);
            int iFieldID = GetFieldID(sTableID, sFieldName);
            if(sboField.GetByKey(sTableID, iFieldID))
                if (sboField.Remove() != 0)_sboApp.SetStatusBarMessage("Error removing UDF: " + _sboCompany.GetLastErrorDescription(), SAPbouiCOM.BoMessageTime.bmt_Short, true);
            sboField = null;
    private int GetFieldID(string sTableID, string sAliasID)
        int iRetVal = 0;
        SAPbobsCOM.Recordset sboRec = (SAPbobsCOM.Recordset)_sboCompany.GetBusinessObject(BoObjectTypes.BoRecordset);
            sboRec.DoQuery("select FieldID from CUFD where TableID = '" + sTableID + "' and AliasID = '" + sAliasID + "'");
            if (!sboRec.EoF) iRetVal = Convert.ToInt32(sboRec.Fields.Item("FieldID").Value.ToString());
            sboRec = null;
        return iRetVal;
    Note that the parameter sAliasID is the field name without the U_ prefix.
    Kind Regards,

  • How to use user defined object with linked button

    Hi experts
    Can I use user defined table data with linked button. If yes then how. plz give me sample examples.

    If you have an UDO in your form, or any other, the FormDataLoad eventhandler should be used.
    Take care, it is not inside the eventhandler.
    for VB:
    Select SBO_APPLICATION in the classes, and select FormDataLoad event
    Private Sub SBO_Application_FormDataEvent(ByRef BusinessObjectInfo As SAPbouiCOM.BusinessObjectInfo, ByRef BubbleEvent As Boolean) Handles SBO_Application.FormDataEvent
    in C#
    Add a new eventhandler as
    // declaration
    SBO_Application.FormDataEvent += new SAPbouiCOM._IApplicationEvents_FormDataEventEventHandler(ref SBO_Application_FormDataEvent);
    // eventhandler:
    public void SBO_Application_FormDataEvent(ref SAPbouiCOM.BusinessObjectInfo BusinessObjectInfo, out bool BubbleEvent)

  • [Ask] User Defined Field

    Guys, I have two questions here...Hope you guys can help me solving the problems...
    1. How to make user defined field that link to user defined table?
    2. Can I make Query with Inventory master data as a base?
    Thx guys...

    Hi Dear,
    You can do this through SDK also as
    1) Create one UDT named OCT_ITEMSUBGRP1 as
    CreateTable("OCT_ITEMSUBGRP1", "Item SubGrroup1", 0)
    Create Table Procedure is
    Private Sub CreateTable(ByVal txttablename As String, ByVal txtTableDescription As String, ByVal txtTabletype As Integer)
            Dim iRet As Double
                OCT_tables = OCT_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables)
                If OCT_tables.GetByKey(CStr(txttablename)) = False Then
                    OCT_tables.TableName = txttablename
                    OCT_tables.TableDescription = txtTableDescription
                    OCT_tables.TableType = txtTabletype
                    iRet = OCT_tables.Add()
                    OCT_Application.SetStatusBarMessage("The Table " & txttablename & " is Added.", SAPbouiCOM.BoMessageTime.bmt_Short, False)
                    OCT_tables = Nothing
                End If
                If iRet <> 0 Then
                End If
                OCT_tables = Nothing
            Catch ex As Exception
            End Try
        End Sub
    Step 2) Creating the Linked Field
    Create_FieldLinked("OITM", "SubGrp1", "Company Classification", 0, 0, 8, "OCT_ITEMSUBGRP1", "")
    Create Linked Table Procedure is
    Private Sub Create_FieldLinked(ByVal txttablename As String, ByVal txtFieldname As String, ByVal txtFieldDescription As String, ByVal type As Integer, ByVal subtype As Integer, ByVal size As Integer, ByVal linktable As String, ByVal ValidField As String)
            'Create Instance of UserTablesMD object 
            OCT_FieldL = OCT_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
                OCT_FieldL.Name = txtFieldname
                OCT_FieldL.Type = type
                OCT_FieldL.Size = size
                OCT_FieldL.Description = txtFieldDescription
                OCT_FieldL.SubType = subtype
                OCT_FieldL.TableName = txttablename
                OCT_FieldL.EditSize = size
                If linktable <> "" Then
                    OCT_FieldL.LinkedTable = linktable
                    OCT_FieldL.Size = 8
                    OCT_FieldL.EditSize = 8
                End If
                IretCode = OCT_FieldL.Add()
                OCT_Application.SetStatusBarMessage("The Field " & txtFieldname & " is Added.", SAPbouiCOM.BoMessageTime.bmt_Short, False)
                If IretCode <> 0 Then
                End If
            Catch ex As Exception
            End Try
            OCT_FieldL = Nothing
        End Sub
    Hope this will help you..
    Warm Regards,

  • Retreve current form value in user define field

    I got a questions, please help.
    I want to retrieve values in current form, like the quantity and discount in Sales order, into a user define field with formatted search, is it possible?
    Many Thanks!

    This is the Syntax of FOrmatted Search Query. This syntax will work only with SBO.
    38 Represents the Matrix(Table) in a Marketing Document
    11 Represents the Quantity Field in the Matrix
    0 Represents the Number Format.
    Place your Cursor on the Matrix and Press CTL + SHFT + D, you'll find the Column information in the Left side of the Status Bar

  • User defined field values doesnot show up in summary tab

    I have created my own stylesheet to display some of my user defined field values (associated with organization address book entry type) in the summary tab of the addressbook entry. But Groupwise 8.0 client FAILS to display any of the user defined field values in the summary tab FOR ONLY ORGANIZATION ADDRESSBOOK ENTRY types. NOTE: These organization addressbook entries are created using the C++ Groupwise object API. But the Advanced tab of these organization addressbook entry shows those user defined fields with values in it.
    Also Groupwise 8.0 Client is able to display the user defined field values in the summary tab for the PERSON ADDRESSBOOK ENTRY types, that are created using the Groupwise Object API. Also when I create a Organization addressbook entry using the Groupwise Client (NEW ORGANIZATION) and fill in the user defined field values using the Advanced tab or that addressbook entry, the summary tab displays those user defined field values.
    So there could be some problem in setting the user defined field value for the Organization address book entry using the Object API or it could be Groupwise 8.0 Client issue in displaying the user defined field values ONLY FOR ORGANIZATION ADDRESS BOOK ENTRY, WHICH ARE CREATED USING THE OBJECT API. I also tried to see the underlying XML data in the summary tab and that XML data is missing the USERDEFINEDFIELDS and CATEGORIES tag for the organization address book entry.
    I would like to know, if there is any need for special handling only for Organization addressbook entry in Groupwise 8.0 API. Any thoughts or help is really appreciated.

    Does anyone have an idea?? Think I have the same issue. Except, when I log in the client (ver. 802) then all the info is displayed. But when the user logs in on the same client and the same pc, he sees the xml info except the office address.
    Any help is greatly appreciated!
    Joost Brenters

  • User-Defined Fields and Form Settings

    I have a User-Defined Field in the table "OCLG" and I'd like to show it in the "Activities Overview for Business Partner - xxx" window.
    Is possibile to do that by the "Form Settings" window? Here I don't find U-D Fields. Is there a way to show them?
    Or is there an other solution?

    This report is hardcoded. You need to create your own report for it. Better by Crystal Report.

  • How to remove User Defined field in programitically

           How to remove user defined field in programitically. send the code
    P.Suresh Kumar

    Please take a look at this thread:
    Re: Can't remove a user defined field with DI API.
    Kind Regards,

  • User Defined Fields on System Form

    Dear All,
                   I want to know that how much User Defined Fields can be added on a system form. My problem is that I am developing an add-on for the Item Master Data. And I have used a lot of User Defined Fields on Item Master Data Forms which contains table 'OITM'. Now if I am trying to add any extra User Defined fields in OITM Table, I am not able to do so. I am getting an error as  'Internal Error Occurred'. What can i do regarding this problem.?  Help me. It is something very important.
    Thanks and Regards

    There is theoretically no limit on the number of UDF for a table. there is however a maximum number of characters for a record in SQL Sever.
    As far as I know this is 4000 in SQL Server 2005 and older and 8000 in SQL Server 2008.
    pls check Microsoft for the exact numbers

  • Cannot remove user define fields

    I am trying to remove a user defined field (U_Prirev) in Table (OHEM) and am getting the following error:
    Ref count for this object in higher then 0. Error No -1120
    The code is as follows :
            Dim sRequete As String
            Dim errCode As Long
            Dim errMsg As String
            Dim IdField As Integer
            Dim oUFields As SAPbobsCOM.UserFieldsMD
            oUFields = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
            Dim oRecordSet As SAPbobsCOM.Recordset
            oRecordSet = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
            sRequete = "SELECT FieldID FROM CUFD where TableId = '" & pNomTable & _
                       "' and AliasID = '" & pNomChamp & "'"
            If (oRecordSet.EoF = False) Then
               IdField = CType(oRecordSet.Fields.Item(0).Value, Integer))
                If (oUFields.GetByKey(pNomTable, IdField) = True) Then
                    If (oUFields.Remove() <> 0) Then
                        oCompany.GetLastError(errCode, errMsg)
                        Console.WriteLine("Erreur => Code = " & errCode.ToString + " Message = " + errMsg)
                    End If
                End If
            End If
            oRecordSet = Nothing
        End Sub
    Anyone knows why i am getting this error.

    Hi Laurent
    That error you are getting is the error that you get is when there is more than one instance of meta data object open. You see only one metedata object can be open at a time.....if it's higher than zero it means others are available. I see you have,
    oRecordSet = Nothing
    this is good and what closes the meta data object. But check that you have done this in previous funtions where you might of added other things.Also your recordset, close it before adding.....move oRecordSet = Nothing to before your Remove of the field. that has be the case for me before. Do it without the recordset as a test and you'll see it works.
    Hope it helps

  • Error -5002 when adding linked user defined field using DI API

    When I try to add a linked user defined field using DI API I get the error number -5002 with description:
    "The field 'Related Table' should consist of 8 alphanumeric characters with no valid or default values"
    I Get the error when I use the Add method.
    What is the solution for this problem? I use SBO 2005 A SP1 Patch 18
    The code I use is (.NET C# 2.0):
    SAPbobsCOM.IUserFieldsMD uf = (SAPbobsCOM.IUserFieldsMD)company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);
    uf.Name = "S_BUCO";
    uf.TableName = "OPOR";
    uf.Type = SAPbobsCOM.BoFieldTypes.db_Memo;
    uf.SubType = SAPbobsCOM.BoFldSubTypes.st_Link;
    uf.LinkedTable = "S_BU";
    uf.Description = "Description";

    Hi Jeffrey,
    Your code above does not match the settings you are using in the UI. In particular, the type and subtype you are setting in code are not correct.
    To create the UDF via code, set the field types as follows:
    SAPbobsCOM.IUserFieldsMD uf = (SAPbobsCOM.IUserFieldsMD)company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);
    uf.Name = "S_BUCO";
    uf.TableName = "OPOR";
    uf.Type = SAPbobsCOM.BoFieldTypes.db_Alpha;
    uf.EditSize = 8;
    uf.LinkedTable = "S_BU";
    uf.Description = "Description";
    There's no need to set the SubType property as you require a regular alphanumeric field.
    Kind Regards,

  • User Defined Fields and Tables

    I am trying to create U defined fields and link it with a usr defined table. Whenevr i am trying to link its throwing error - Alphanumeric field size cannot be decreased.
    Also can anyone tell me how to create data entry form through user defined objects. Can it be done without involving sdk/programming

    First question, Your UDF length field is morethan 8, if you linking with UDT the length should be 8. if your UDF less then 8 e.g. 1-7. after you linking it the UDF length will be 8, it's because default length field in UDT ( Code(8), Name(30)).
    Second, yes it can, but on for simple requeirement, if Your requirement is complex, You need SDK.
    Step :
    - create UDT
    - Create UDF
    - Register  ( Tool >> User Defined Object >> Registration Wizard ) don't forget to tick Default Form.
    fyi, there 2 kind of UDO : Document and Master Data,  You should consider this.

Maybe you are looking for