on 12-29-2013 7:09 PM
Hi,
I'm trying to create an UDO with a child table and a standard form. The form should contain some fields from the "mother" and a grid/matrix from the "child" table.
Doing this through the wizard is easy but through code is not working for me
This is my current code,it does create the UDO and the form but there is nothing visible from the child table.
oUserObjectMD.Code = "UDO";
oUserObjectMD.Name = "Header";
oUserObjectMD.TableName = "Header";
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document ;
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES ;
oUserObjectMD.UseUniqueFormType = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FatherMenuID =2048;
oUserObjectMD.MenuCaption = "UDO";
oUserObjectMD.MenuUID = "UDO";
oUserObjectMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.ChildTables.TableName = "Lines";
oUserObjectMD.FindColumns.ColumnAlias = "DocEntry";
oUserObjectMD.FindColumns.ColumnDescription = "DocEntry";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FindColumns.ColumnAlias = "U_cardcode";
oUserObjectMD.FindColumns.ColumnDescription = "cardcode";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "DocEntry";
oUserObjectMD.FormColumns.FormColumnDescription = "DocEntry";
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "U_cardcode"; //ChildTable ColumnAlias
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.FormColumnDescription = "CardCode"; //ChildTable ColumnDescription
oUserObjectMD.FormColumns.SonNumber = 0; // ChildTable SonNumber
oUserObjectMD.FormColumns.SetCurrentLine(1);
oUserObjectMD.FormColumns.FormColumnAlias = "U_cardcode"; //ChildTable ColumnAlias
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.FormColumnDescription = "CardCode"; //ChildTable ColumnDescription
oUserObjectMD.FormColumns.SonNumber = 1; // ChildTable SonNumber
oUserObjectMD.Add() ;
Please help
Tnx,
Paul
Dim oUserObjectMD As SAPbobsCOM.UserObjectsMD
Dim oUDOFind As SAPbobsCOM.UserObjectMD_FindColumns
Dim oUDOForm As SAPbobsCOM.UserObjectMD_FormColumns
Dim oUDOEnhancedForm As SAPbobsCOM.UserObjectMD_EnhancedFormColumns
Set oUserObjectMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)
Set oUDOFind = oUserObjectMD.FindColumns
Set oUDOForm = oUserObjectMD.FormColumns
Set oUDOEnhancedForm = oUserObjectMD.EnhancedFormColumns
oUserObjectMD.Code = "UDO"
oUserObjectMD.Name = "Header"
oUserObjectMD.TableName = "HEADER"
oUserObjectMD.ChildTables.TableName = "LINES"
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FatherMenuID = 2048
oUserObjectMD.MenuCaption = "UDO"
oUserObjectMD.MenuUID = "UDO"
oUserObjectMD.Position = 1
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.UseUniqueFormType = SAPbobsCOM.BoYesNoEnum.tYES
'===========================================================================================
oUDOFind.ColumnAlias = "DocEntry"
oUDOFind.ColumnDescription = "DocEntry"
oUDOFind.Add
oUDOFind.ColumnAlias = "DocNum"
oUDOFind.ColumnDescription = "DocNum"
oUDOFind.Add
oUDOFind.ColumnAlias = "CreateDate"
oUDOFind.ColumnDescription = "CreateDate"
oUDOFind.Add
oUDOFind.ColumnAlias = "UpdateDate"
oUDOFind.ColumnDescription = "UpdateDate"
oUDOFind.Add
oUDOFind.ColumnAlias = "U_cardcode"
oUDOFind.ColumnDescription = "cardcode"
oUDOFind.Add
oUDOFind.ColumnAlias = "U_ShipTo"
oUDOFind.ColumnDescription = "ShipTo"
oUDOFind.Add
oUDOFind.ColumnAlias = "U_BillTo"
oUDOFind.ColumnDescription = "BillTo"
'===========================================================================================
oUDOForm.FormColumnAlias = "DocEntry"
oUDOForm.FormColumnDescription = "DocEntry"
oUDOForm.Add
oUDOForm.FormColumnAlias = "U_cardcode"
oUDOForm.FormColumnDescription = "cardcode"
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUDOForm.Add
oUDOForm.FormColumnAlias = "U_ShipTo"
oUDOForm.FormColumnDescription = "ShipTo"
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUDOForm.Add
oUDOForm.FormColumnAlias = "U_BillTo"
oUDOForm.FormColumnDescription = "BillTo"
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUDOForm.Add
'===========================================================================================
oUDOEnhancedForm.ColumnAlias = "LineId"
oUDOEnhancedForm.ColumnDescription = "LineId"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 1
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
oUDOEnhancedForm.ColumnAlias = "U_itemcode"
oUDOEnhancedForm.ColumnDescription = "itemcode"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 2
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
oUDOEnhancedForm.ColumnAlias = "U_itemname"
oUDOEnhancedForm.ColumnDescription = "itemname"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 3
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
oUDOEnhancedForm.ColumnAlias = "U_quantity"
oUDOEnhancedForm.ColumnDescription = "quantity"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 4
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
oUDOEnhancedForm.ColumnAlias = "U_price"
oUDOEnhancedForm.ColumnDescription = "price"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 5
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
oUDOEnhancedForm.ColumnAlias = "U_discount"
oUDOEnhancedForm.ColumnDescription = "discount"
oUDOEnhancedForm.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES
oUDOEnhancedForm.ColumnNumber = 6
oUDOEnhancedForm.ChildNumber = 1
oUDOEnhancedForm.Add
If oUserObjectMD.Add <> 0 Then
'oCompany.GetLastError(lErrCode, sErrMsg)
'MessageBox.Show (lErrCode & ": " & sErrMsg)
Debug.Print oCompany.GetLastErrorDescription
Else
Debug.Print "Ok"
End If
Regards
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Try this one. Actually I spent a lot of hours to create also a UDO with child table.
Public Sub oCreateObjects()
Try
Dim oUserObjectMD As SAPbobsCOM.UserObjectsMD
oRec.DoQuery("SELECT Code FROM [" & oCompany.CompanyDB & "]..OUDO WHERE Code = 'APP_OBIL' ")
If oRec.RecordCount = 1 Then
Return
End If
System.Runtime.InteropServices.Marshal.ReleaseComObject(oRec)
oRec = Nothing
oUserObjectMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD)
oUserObjectMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO
oUserObjectMD.Code = "APP_BIL"
oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.Name = "Billing Integration"
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_MasterData
oUserObjectMD.TableName = "APP_OBIL"
'For Header
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.FormColumnAlias = "Code"
oUserObjectMD.FormColumns.FormColumnDescription = "Code"
oUserObjectMD.FormColumns.Add()
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_clientcde"
oUserObjectMD.FormColumns.FormColumnDescription = "Client Code"
oUserObjectMD.FormColumns.Add()
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_dealercde"
oUserObjectMD.FormColumns.FormColumnDescription = "Card Code"
oUserObjectMD.FormColumns.Add()
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_billno"
oUserObjectMD.FormColumns.FormColumnDescription = "Bill No"
oUserObjectMD.FormColumns.Add()
'For Details
oUserObjectMD.ChildTables.TableName = "APP_BIL1"
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_DocDate"
oUserObjectMD.FormColumns.FormColumnDescription = "Trip date"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_DocNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Hauling Trip Ticket"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_UnitNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Tractor Body Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_PlateNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Tractor Plate Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_TrlNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Trailer Body Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_TrlPlate"
oUserObjectMD.FormColumns.FormColumnDescription = "Trailer Plate Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_TtNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Trip Ticket Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Ttypecde"
oUserObjectMD.FormColumns.FormColumnDescription = "Trip type code"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Routcde"
oUserObjectMD.FormColumns.FormColumnDescription = "Route Code"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Source"
oUserObjectMD.FormColumns.FormColumnDescription = "Trip's origin"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Destin"
oUserObjectMD.FormColumns.FormColumnDescription = "Trip's destination"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Cargocde"
oUserObjectMD.FormColumns.FormColumnDescription = "Cargo Code"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Cargodesc"
oUserObjectMD.FormColumns.FormColumnDescription = "Cargo Description"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Quantity"
oUserObjectMD.FormColumns.FormColumnDescription = "Quantity of Cargo"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_NoOfPal"
oUserObjectMD.FormColumns.FormColumnDescription = "No of qty in pallets"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_BlRate"
oUserObjectMD.FormColumns.FormColumnDescription = "Billing/Hauling Rate"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_FwdDrNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Forward DR Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_BckDrNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Backload DR Number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_NlocTrip"
oUserObjectMD.FormColumns.FormColumnDescription = "Number of local trips"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_DriverNo"
oUserObjectMD.FormColumns.FormColumnDescription = "Employee/Driver number"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_EmpName"
oUserObjectMD.FormColumns.FormColumnDescription = "Employee Name"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_Vatable"
oUserObjectMD.FormColumns.FormColumnDescription = "Without VAT"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_VatAmount"
oUserObjectMD.FormColumns.FormColumnDescription = "With VAT"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
oUserObjectMD.FormColumns.FormColumnAlias = "U_APP_DupCar"
oUserObjectMD.FormColumns.FormColumnDescription = "Duplicate cargo type"
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES
oUserObjectMD.FormColumns.SonNumber = 1
oUserObjectMD.FormColumns.Add()
If oUserObjectMD.Add() <> 0 Then
SAP_APP.SetMessage(oCompany.GetLastErrorDescription)
Else
SAP_APP.SetMessage("Please close your SAP application to Apply registered object.", SAPbouiCOM.BoStatusBarMessageType.smt_Error)
End If
oUserObjectMD = Nothing
GC.Collect()
Catch ex As Exception
SAP_APP.SetMessage(ex.ToString, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
Return
End Try
End Sub
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi P.M. Witmond
SAPbobsCOM.UserObjectsMD oUserObjectMD = null;
SAPbobsCOM.UserObjectMD_FindColumns oUDOFind = null;
oUserObjectMD = (SAPbobsCOM.UserObjectsMD)Program.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);
oUserObjectMD.Code = "UDO";
oUserObjectMD.Name = "Header";
oUserObjectMD.TableName = "HEADER";
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document;
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FatherMenuID = 2048;
oUserObjectMD.MenuCaption = "UDO";
oUserObjectMD.MenuUID = "UDO";
oUserObjectMD.Position = 1;
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.FindColumns.ColumnAlias = "DocEntry";
oUserObjectMD.FindColumns.ColumnDescription = "DocEntry";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FindColumns.ColumnAlias = "U_cardcode";
oUserObjectMD.FindColumns.ColumnDescription = "cardcode";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.ChildTables.TableName = "LINES";
oUserObjectMD.FormColumns.SetCurrentLine(0);
oUserObjectMD.FormColumns.FormColumnAlias = "U_itemcode"; //ChildTable ColumnAlias
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.FormColumnDescription = "itemcode"; //ChildTable ColumnDescription
oUserObjectMD.FormColumns.SonNumber = 1; // ChildTable SonNumber
oUserObjectMD.FormColumns.Add();
if (oUserObjectMD.Add() != 0)
{
Program.oCompany.GetLastErrorDescription();
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Chan,
Thanks but it’s not working
Please see my current code :
oUserObjectMD.Code = "UDO";
oUserObjectMD.Name = "UDO";
oUserObjectMD.TableName = "UDO_HEADER";
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document;
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.MenuItem= SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FatherMenuID = 2048;
oUserObjectMD.MenuCaption = "UDO";
oUserObjectMD.MenuUID = "UDO";
oUserObjectMD.FindColumns.ColumnAlias = "DocEntry";
oUserObjectMD.FindColumns.ColumnDescription = "DocEntry";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "DocEntry";
oUserObjectMD.FormColumns.FormColumnDescription = "DocEntry";
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FindColumns.ColumnAlias = "U_CardCode";
oUserObjectMD.FindColumns.ColumnDescription= "CardCode";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "U_CardCode";
oUserObjectMD.FormColumns.FormColumnDescription = "CardCode";
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FindColumns.ColumnAlias = "U_ShipTo";
oUserObjectMD.FindColumns.ColumnDescription = "ShipTo";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "U_ShipTo";
oUserObjectMD.FormColumns.FormColumnDescription = "ShipTo";
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FindColumns.ColumnAlias = "U_BillTo";
oUserObjectMD.FindColumns.ColumnDescription = "BillTo";
oUserObjectMD.FindColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias = "U_BillTo";
oUserObjectMD.FormColumns.FormColumnDescription = "BillTo";
oUserObjectMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.Add();
oUserObjectMD.ChildTables.TableName = "UDO_Lines";
oUserObjectMD.FormColumns.SetCurrentLine(0);
oUserObjectMD.FormColumns.FormColumnAlias = "DocEntry";
oUserObjectMD.FormColumns.FormColumnDescription= "DocEntry";
oUserObjectMD.FormColumns.Add();
oUserObjectMD.FormColumns.FormColumnAlias= "U_ItemCode";
oUserObjectMD.FormColumns.Editable= SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FormColumns.FormColumnDescription = "ItemCode";
oUserObjectMD.FormColumns.SonNumber= 1;
oUserObjectMD.FormColumns.Add();
using the code above we get this screen
But we need this screen :
Can you find the error ?
Thanks,
Paul
Hi Ad,
I disagree with your answer, you can do all of this, here is some sample and code which I write some years ago to do it.
First the generated xml file (I created code to generate it, since on the time of programming this the export option wasn't available):
<BO>
<AdmInfo>
<Object>206</Object>
<Version>2</Version>
</AdmInfo>
<UserObjectsMD>
<row>
<CanCancel>tNO</CanCancel>
<CanClose>tNO</CanClose>
<CanCreateDefaultForm>tYES</CanCreateDefaultForm>
<CanDelete>tYES</CanDelete>
<CanFind>tYES</CanFind>
<CanLog>tNO</CanLog>
<CanYearTransfer>tNO</CanYearTransfer>
<ChildTables>
<ChildTable>
<TableName>ELC0039</TableName>
</ChildTable>
</ChildTables>
<Code>ELC0038</Code>
<EnableEnhancedForm>tNO</EnableEnhancedForm>
<ExtensionName></ExtensionName>
<FindColumns>
<FindColumn>
<ColumnAlias>U_ELC00211</ColumnAlias>
<ColumnDescription>Id Menu</ColumnDescription>
</FindColumn>
<FindColumn>
<ColumnAlias>U_ELC00212</ColumnAlias>
<ColumnDescription>Id Fenêtre</ColumnDescription>
</FindColumn>
</FindColumns>
<FormColumns>
<FormColumn>
<FormColumnAlias>Code</FormColumnAlias>
<FormColumnDescription>Code</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>Name</FormColumnAlias>
<FormColumnDescription>Name</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00014</FormColumnAlias>
<FormColumnDescription>Actif</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00211</FormColumnAlias>
<FormColumnDescription>Id Menu</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00212</FormColumnAlias>
<FormColumnDescription>Id Fenêtre</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00033</FormColumnAlias>
<FormColumnDescription>Description</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00027</FormColumnAlias>
<FormColumnDescription>Commentaires</FormColumnDescription>
<SonNumber>0</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00014</FormColumnAlias>
<FormColumnDescription>Actif</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00213</FormColumnAlias>
<FormColumnDescription>Item Id</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00214</FormColumnAlias>
<FormColumnDescription>Type élément</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00215</FormColumnAlias>
<FormColumnDescription>Left</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00216</FormColumnAlias>
<FormColumnDescription>Top</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00217</FormColumnAlias>
<FormColumnDescription>Width</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00218</FormColumnAlias>
<FormColumnDescription>Height</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00241</FormColumnAlias>
<FormColumnDescription>Left Rel. To</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00242</FormColumnAlias>
<FormColumnDescription>Top Rel. To</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00243</FormColumnAlias>
<FormColumnDescription>Width Rel. To</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00244</FormColumnAlias>
<FormColumnDescription>Height Rel. To</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00219</FormColumnAlias>
<FormColumnDescription>Table Id</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00220</FormColumnAlias>
<FormColumnDescription>Field Id</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00221</FormColumnAlias>
<FormColumnDescription>Visible</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00222</FormColumnAlias>
<FormColumnDescription>Enabled</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00223</FormColumnAlias>
<FormColumnDescription>AffectsFormMode</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00224</FormColumnAlias>
<FormColumnDescription>FromPane</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00225</FormColumnAlias>
<FormColumnDescription>ToPane</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00226</FormColumnAlias>
<FormColumnDescription>TabOrder</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00227</FormColumnAlias>
<FormColumnDescription>LinkTo</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00033</FormColumnAlias>
<FormColumnDescription>Description</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00228</FormColumnAlias>
<FormColumnDescription>Descr. Length</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00229</FormColumnAlias>
<FormColumnDescription>RightJustified</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00230</FormColumnAlias>
<FormColumnDescription>ForeColor</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00231</FormColumnAlias>
<FormColumnDescription>BackColor</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00232</FormColumnAlias>
<FormColumnDescription>TextStyle</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00233</FormColumnAlias>
<FormColumnDescription>FontSize</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00234</FormColumnAlias>
<FormColumnDescription>SuppressZero</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00235</FormColumnAlias>
<FormColumnDescription>ChooseFromListType</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00236</FormColumnAlias>
<FormColumnDescription>ChooseFromListAlias</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00237</FormColumnAlias>
<FormColumnDescription>LinkedObjectType</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00238</FormColumnAlias>
<FormColumnDescription>ValOn</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00239</FormColumnAlias>
<FormColumnDescription>ValOff</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00240</FormColumnAlias>
<FormColumnDescription>DispDesc</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
<FormColumn>
<FormColumnAlias>U_ELC00027</FormColumnAlias>
<FormColumnDescription>Commentaires</FormColumnDescription>
<SonNumber>1</SonNumber>
</FormColumn>
</FormColumns>
<ManageSeries>tNO</ManageSeries>
<Name>Personnalized UI</Name>
<ObjectType>boud_MasterData</ObjectType>
<TableName>ELC0038</TableName>
<UseUniqueFormType>tYES</UseUniqueFormType>
</row>
</UserObjectsMD>
</BO>
And the code to import it:
namespace BusinessOne.DI.Components
{
using System;
using System.ComponentModel;
using System.Globalization;
using System.Threading;
using System.Xml;
using Addon;
using Exceptions;
using Properties;
using SAPbobsCOM;
using Types.Enums.DI;
using Utilities;
public class UserObjectsMDExt : DIObjectBase
{
#region Private Members
private string _key1;
#endregion
#region Constructors & Destructors
public UserObjectsMDExt()
: base()
{
}
#endregion
#region Properties
public string Code
{
get
{
_key1 = ((UserObjectsMD)COMObject).Code;
return _key1;
}
set
{
if ((null == value) ||
((null != value) && (20 < value.Length)))
{
throw new ItemTypeException(string.Format(CultureInfo.InvariantCulture, B1Connection.Language.Translate("T0000014"), value, "UserObjectsMD.Code"));
}
((UserObjectsMD)COMObject).Code = value;
}
}
public override string ObjectTable
{
get { return "OUDO"; }
}
public override BusinessObjectType ObjectType
{
get { return BusinessObjectType.UserObjectsMD; }
}
public string TableName
{
get
{
return ((UserObjectsMD)COMObject).TableName;
}
set
{
if ((null == value) ||
((null != value) && (19 < value.Length)))
{
throw new ItemTypeException(string.Format(CultureInfo.InvariantCulture, B1Connection.Language.Translate("T0000014"), value, "UserObjectsMD.TableName"));
}
((UserObjectsMD)COMObject).TableName = value;
}
}
public override object UniqueId
{
get { return Code; }
}
public override string Xml
{
get
{
string xml = "<?xml version=\"1.0\" encoding=\"UTF-16\"?><BOM>";
string xmlTemp = string.Empty;
bool found = false;
int pos = 0;
xml += "<BO><AdmInfo><Object>206</Object><Version>2</Version></AdmInfo><UserObjectsMD><row>";
xml += "<CanCancel>" + ((UserObjectsMD)COMObject).CanCancel + "</CanCancel>";
xml += "<CanClose>" + ((UserObjectsMD)COMObject).CanClose + "</CanClose>";
xml += "<CanCreateDefaultForm>" + ((UserObjectsMD)COMObject).CanCreateDefaultForm + "</CanCreateDefaultForm>";
xml += "<CanDelete>" + ((UserObjectsMD)COMObject).CanDelete + "</CanDelete>";
xml += "<CanFind>" + ((UserObjectsMD)COMObject).CanFind + "</CanFind>";
xml += "<CanLog>" + ((UserObjectsMD)COMObject).CanLog + "</CanLog>";
xml += "<CanYearTransfer>" + ((UserObjectsMD)COMObject).CanYearTransfer + "</CanYearTransfer>";
if (0 < ((UserObjectsMD)COMObject).ChildTables.Count)
{
found = false;
xmlTemp = "<ChildTables>";
for (pos = 0; pos < ((UserObjectsMD)COMObject).ChildTables.Count; pos++)
{
((UserObjectsMD)COMObject).ChildTables.SetCurrentLine(pos);
if (false == string.IsNullOrEmpty(((UserObjectsMD)COMObject).ChildTables.Code))
{
xmlTemp += "<ChildTable><LogTableName>" + ((UserObjectsMD)COMObject).ChildTables.LogTableName + "</LogTableName>" +
"<TableName>" + ((UserObjectsMD)COMObject).ChildTables.TableName + "</TableName></ChildTable>";
found = true;
}
}
if (true == found)
{
xml += xmlTemp + "</ChildTables>";
}
}
xml += "<Code>" + ((UserObjectsMD)COMObject).Code + "</Code>";
#if !SBO881
xml += "<EnableEnhancedForm>" + ((SAPbobsCOM.UserObjectsMD)COMObject).EnableEnhancedForm + "</EnableEnhancedForm>";
#endif
xml += "<ExtensionName>" + ((UserObjectsMD)COMObject).ExtensionName + "</ExtensionName>";
if (0 != ((UserObjectsMD)COMObject).FindColumns.Count)
{
found = false;
xmlTemp = "<FindColumns>";
for (pos = 0; pos < ((UserObjectsMD)COMObject).FindColumns.Count; pos++)
{
((UserObjectsMD)COMObject).FindColumns.SetCurrentLine(pos);
if (false == string.IsNullOrEmpty(((UserObjectsMD)COMObject).FindColumns.Code))
{
xmlTemp += "<FindColumn><ColumnAlias>" + ((UserObjectsMD)COMObject).FindColumns.ColumnAlias + "</ColumnAlias>"
+ "<ColumnDescription>" + ((UserObjectsMD)COMObject).FindColumns.ColumnDescription + "</ColumnDescription>"
+ "</FindColumn>";
found = true;
}
}
if (true == found)
{
xml += xmlTemp + "</FindColumns>";
}
}
if (0 != ((UserObjectsMD)COMObject).FormColumns.Count)
{
found = false;
xmlTemp = "<FormColumns>";
for (pos = 0; pos < ((UserObjectsMD)COMObject).FormColumns.Count; pos++)
{
((UserObjectsMD)COMObject).FormColumns.SetCurrentLine(pos);
if (false == string.IsNullOrEmpty(((UserObjectsMD)COMObject).FormColumns.Code))
{
xmlTemp += string.Format(
CultureInfo.InvariantCulture,
"<FormColumn><FormColumnAlias>{0}</FormColumnAlias><FormColumnDescription>{1}</FormColumnDescription><SonNumber>{2}</SonNumber></FormColumn>",
((UserObjectsMD)COMObject).FormColumns.FormColumnAlias,
((UserObjectsMD)COMObject).FormColumns.FormColumnDescription,
((UserObjectsMD)COMObject).FormColumns.SonNumber);
found = true;
}
}
if (true == found)
{
xml += xmlTemp + "</FormColumns>";
}
}
#if !SBO881
xml += "<FormSRF>" + ((SAPbobsCOM.UserObjectsMD)COMObject).FormSRF + "</FormSRF>";
#endif
xml += string.Format(CultureInfo.InvariantCulture, "<LogTableName>{0}</LogTableName>", ((UserObjectsMD)COMObject).LogTableName);
xml += string.Format(CultureInfo.InvariantCulture, "<ManageSeries>{0}</ManageSeries>", ((UserObjectsMD)COMObject).ManageSeries);
#if !SBO881
xml += "<MenuCaption>" + ((SAPbobsCOM.UserObjectsMD)COMObject).MenuCaption + "</MenuCaption>";
xml += "<MenuItem>" + ((SAPbobsCOM.UserObjectsMD)COMObject).MenuItem + "</MenuItem>";
xml += "<MenuUID>" + ((SAPbobsCOM.UserObjectsMD)COMObject).MenuUID + "</MenuUID>";
#endif
xml += string.Format(CultureInfo.InvariantCulture, "<Name>{0}</Name>", ((UserObjectsMD)COMObject).Name);
xml += string.Format(CultureInfo.InvariantCulture, "<ObjectType>{0}</ObjectType>", ((UserObjectsMD)COMObject).ObjectType);
#if !SBO881
xml += "<Position>" + ((SAPbobsCOM.UserObjectsMD)COMObject).Position + "</Position>";
#endif
xml += string.Format(CultureInfo.InvariantCulture, "<TableName>{0}</TableName>", ((UserObjectsMD)COMObject).TableName);
xml += "<UseUniqueFormType>" + ((UserObjectsMD)COMObject).UseUniqueFormType + "</UseUniqueFormType>";
xml += "</row></UserObjectsMD></BO></BOM>";
return xml;
}
}
#endregion
#region Framework Overloaded Functions
public override bool Exists()
{
bool returnValue = false;
if ((null != COMObject) &&
(null != GetKeyByFields(Code, TableName)))
{
returnValue = true;
}
return returnValue;
}
public override bool GetObject(XmlDocument xmlDoc)
{
bool returnValue = false;
if (null != xmlDoc)
{
XmlNode key1 = xmlDoc.SelectSingleNode("//row/Code");
if (null != key1)
{
_key1 = key1.InnerText;
returnValue = GetByKey(_key1);
}
}
return returnValue;
}
public override int Add(XmlDocument xmlDoc)
{
int errorCode = 0;
if (null != xmlDoc)
{
CreateNew();
if (null != COMObject)
{
SetXml(xmlDoc);
errorCode = Add();
}
}
return errorCode;
}
public override string ToString()
{
return Code;
}
#endregion
#region Protected Functions
protected override void ReadXml(string xmlFilename, int pos)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFilename);
SetXml(xmlDoc);
}
#endregion
#region Private Functions
private void SetXml(XmlDocument xmlDoc)
{
UserObjectsMD udo = (UserObjectsMD)COMObject;
XmlDocument tempDoc = new XmlDocument();
XmlNode xmlNode = null;
int pos = 0;
xmlNode = xmlDoc.SelectSingleNode("//row/CanCancel");
if (null != xmlNode)
{
udo.CanCancel = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanClose");
if (null != xmlNode)
{
udo.CanClose = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanCreateDefaultForm");
if (null != xmlNode)
{
udo.CanCreateDefaultForm = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanDelete");
if (null != xmlNode)
{
udo.CanDelete = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanFind");
if (null != xmlNode)
{
udo.CanFind = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanLog");
if (null != xmlNode)
{
udo.CanLog = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/CanYearTransfer");
if (null != xmlNode)
{
udo.CanYearTransfer = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
#if !SBO881
xmlNode = xmlDoc.SelectSingleNode("//row/EnableEnhancedForm");
if (null != xmlNode)
{
udo.EnableEnhancedForm = ("tYES" == xmlNode.InnerText) ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/MenuCaption");
if (null != xmlNode)
{
udo.MenuCaption = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/FormSRF");
if (null != xmlNode)
{
udo.FormSRF = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/MenuItem");
if (null != xmlNode)
{
udo.MenuItem = ("tYES" == xmlNode.InnerText) ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/MenuUID");
if (null != xmlNode)
{
udo.MenuUID = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/Position");
if (null != xmlNode)
{
udo.Position = BusinessOne.Utilities.Conversions.ToInt(xmlNode.InnerText);
}
xmlNode = xmlDoc.SelectSingleNode("//row/UseUniqueFormType");
if (null != xmlNode)
{
udo.UseUniqueFormType = ("tYES" == xmlNode.InnerText) ? SAPbobsCOM.BoYesNoEnum.tYES : SAPbobsCOM.BoYesNoEnum.tNO;
}
#endif
xmlNode = xmlDoc.SelectSingleNode("//row/ChildTables");
if (null != xmlNode)
{
pos = 0;
foreach (XmlNode childNode in xmlNode.ChildNodes)
{
tempDoc.LoadXml(childNode.OuterXml);
if (0 != pos)
{
udo.ChildTables.Add();
udo.ChildTables.SetCurrentLine(udo.ChildTables.Count - 1);
}
xmlNode = tempDoc.SelectSingleNode("//LogTableName");
if (null != xmlNode)
{
udo.ChildTables.LogTableName = xmlNode.InnerText;
}
xmlNode = tempDoc.SelectSingleNode("//TableName");
if (null != xmlNode)
{
udo.ChildTables.TableName = xmlNode.InnerText;
}
pos++;
}
}
xmlNode = xmlDoc.SelectSingleNode("//row/Code");
if (null != xmlNode)
{
udo.Code = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/ExtensionName");
if ((null != xmlNode) && (false == string.IsNullOrEmpty(xmlNode.InnerText)))
{
udo.ExtensionName = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/FindColumns");
if (null != xmlNode)
{
pos = 0;
foreach (XmlNode childNode in xmlNode.ChildNodes)
{
tempDoc.LoadXml(childNode.OuterXml);
if (0 != pos)
{
udo.FindColumns.Add();
udo.FindColumns.SetCurrentLine(udo.FindColumns.Count - 1);
}
xmlNode = tempDoc.SelectSingleNode("//ColumnAlias");
if (null != xmlNode)
{
udo.FindColumns.ColumnAlias = xmlNode.InnerText;
}
xmlNode = tempDoc.SelectSingleNode("//ColumnDescription");
if (null != xmlNode)
{
udo.FindColumns.ColumnDescription = xmlNode.InnerText;
}
pos++;
}
}
xmlNode = xmlDoc.SelectSingleNode("//row/FormColumns");
if (null != xmlNode)
{
pos = 0;
foreach (XmlNode childNode in xmlNode.ChildNodes)
{
tempDoc.LoadXml(childNode.OuterXml);
if (0 != pos)
{
udo.FormColumns.Add();
udo.FormColumns.SetCurrentLine(udo.FormColumns.Count - 1);
}
xmlNode = tempDoc.SelectSingleNode("//FormColumnAlias");
if (null != xmlNode)
{
udo.FormColumns.FormColumnAlias = xmlNode.InnerText;
}
xmlNode = tempDoc.SelectSingleNode("//FormColumnDescription");
if (null != xmlNode)
{
udo.FormColumns.FormColumnDescription = xmlNode.InnerText;
}
xmlNode = tempDoc.SelectSingleNode("//SonNumber");
if (null != xmlNode)
{
udo.FormColumns.SonNumber = Conversions.ToInt(xmlNode.InnerText);
}
pos++;
}
}
xmlNode = xmlDoc.SelectSingleNode("//row/LogTableName");
if ((null != xmlNode) && (false == string.IsNullOrEmpty(xmlNode.InnerText)))
{
udo.LogTableName = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/ManageSeries");
if (null != xmlNode)
{
udo.ManageSeries = ("tYES" == xmlNode.InnerText) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
}
xmlNode = xmlDoc.SelectSingleNode("//row/Name");
if (null != xmlNode)
{
udo.Name = xmlNode.InnerText;
}
xmlNode = xmlDoc.SelectSingleNode("//row/ObjectType");
if (null != xmlNode)
{
switch (xmlNode.InnerText)
{
case "boud_MasterData":
udo.ObjectType = BoUDOObjType.boud_MasterData;
break;
case "boud_Document":
udo.ObjectType = BoUDOObjType.boud_Document;
break;
}
}
xmlNode = xmlDoc.SelectSingleNode("//row/TableName");
if (null != xmlNode)
{
udo.TableName = xmlNode.InnerText;
}
}
#endregion
}
}
And it works since years, in production environements
Regards,
Eric
hi P.M. Witmond
When B1 data register And When the DI API to register The difference
SELECT * FROM UDO1 WHERE CODE = 'UDO'
SELECT * FROM UDO2 WHERE CODE = 'UDO'
SELECT * FROM UDO3 WHERE CODE = 'UDO'
B1 Application UDO Create
DI API UDO Create
SAP B1 9.0 PL06 32bit
This is Test Source
SAPbobsCOM.UserObjectsMD oUserObjectMD = null;
SAPbobsCOM.UserObjectMD_FindColumns oUDOFind = null;
SAPbobsCOM.UserObjectMD_FormColumns oUDOForm = null;
oUserObjectMD = (SAPbobsCOM.UserObjectsMD)Program.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);
oUDOFind = oUserObjectMD.FindColumns;
oUDOForm = oUserObjectMD.FormColumns;
oUserObjectMD.Code = "UDO";
oUserObjectMD.Name = "Header";
oUserObjectMD.TableName = "HEADER";
oUserObjectMD.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document;
oUserObjectMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanClose = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES;
oUserObjectMD.FatherMenuID = 2048;
oUserObjectMD.MenuCaption = "UDO";
oUserObjectMD.MenuUID = "UDO";
oUserObjectMD.Position = 1;
oUserObjectMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
oUserObjectMD.UseUniqueFormType = SAPbobsCOM.BoYesNoEnum.tYES;
//===========================================================================================
oUDOFind.ColumnAlias = "DocEntry";
oUDOFind.ColumnDescription = "DocEntry";
oUDOFind.Add();
oUDOFind.ColumnAlias = "DocNum";
oUDOFind.ColumnDescription = "DocNum";
oUDOFind.Add();
oUDOFind.ColumnAlias = "CreateDate";
oUDOFind.ColumnDescription = "CreateDate";
oUDOFind.Add();
oUDOFind.ColumnAlias = "UpdateDate";
oUDOFind.ColumnDescription = "UpdateDate";
oUDOFind.Add();
oUDOFind.ColumnAlias = "U_cardcode";
oUDOFind.ColumnDescription = "cardcode";
oUDOFind.Add();
oUDOFind.ColumnAlias = "U_ShipTo";
oUDOFind.ColumnDescription = "ShipTo";
oUDOFind.Add();
oUDOFind.ColumnAlias = "U_BillTo";
oUDOFind.ColumnDescription = "BillTo";
//===========================================================================================
oUserObjectMD.ChildTables.TableName = "LINES";
oUDOForm.Add();
oUDOForm.SetCurrentLine(0);
oUDOForm.FormColumnAlias = "LineId";
oUDOForm.FormColumnDescription = "LineId";
oUDOForm.SonNumber = 1;
oUDOForm.Add();
oUDOForm.SetCurrentLine(1);
oUDOForm.FormColumnAlias = "U_itemcode";
oUDOForm.FormColumnDescription = "itemcode";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tNO;
oUDOForm.SonNumber = 1;
oUDOForm.Add();
oUDOForm.SetCurrentLine(2);
oUDOForm.FormColumnAlias = "U_itemname";
oUDOForm.FormColumnDescription = "itemname";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tNO;
oUDOForm.SonNumber = 1;
oUDOForm.Add();
oUDOForm.SetCurrentLine(3);
oUDOForm.FormColumnAlias = "U_quantity";
oUDOForm.FormColumnDescription = "quantity";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tNO;
oUDOForm.SonNumber = 1;
oUDOForm.Add();
oUDOForm.SetCurrentLine(4);
oUDOForm.FormColumnAlias = "U_price";
oUDOForm.FormColumnDescription = "price";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tNO;
oUDOForm.SonNumber = 1;
oUDOForm.Add();
oUDOForm.SetCurrentLine(5);
oUDOForm.FormColumnAlias = "U_discount";
oUDOForm.FormColumnDescription = "discount";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tNO;
oUDOForm.SonNumber = 1;
//===========================================================================================
oUDOForm.SetCurrentLine(6);
oUDOForm.FormColumnAlias = "DocEntry";
oUDOForm.FormColumnDescription = "DocEntry";
oUDOForm.Add();
oUDOForm.SetCurrentLine(7);
oUDOForm.FormColumnAlias = "U_cardcode";
oUDOForm.FormColumnDescription = "cardcode";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUDOForm.Add();
oUDOForm.SetCurrentLine(8);
oUDOForm.FormColumnAlias = "U_ShipTo";
oUDOForm.FormColumnDescription = "ShipTo";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
oUDOForm.Add();
oUDOForm.SetCurrentLine(9);
oUDOForm.FormColumnAlias = "U_BillTo";
oUDOForm.FormColumnDescription = "BillTo";
oUDOForm.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
if (oUserObjectMD.Add() != 0)
{
Program.oCompany.GetLastErrorDescription();
}
==========================================================
I think there is no problem in the data.
Data Check that no problem was found.
hi Ad
I did not know that you can vote.
Thank
URL Copy & Paste
Vote please.
Regards
ChanKyu Kim
hi Ad
Sorry My Link doesn;t work
URL Copy and New Internet Explorer URL Paste Plz.
Regards
User | Count |
---|---|
99 | |
9 | |
8 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.