在SAP Business One中创建UDO

时间:2014-03-20 08:30:58

标签: sdk sap sapb1

我在SAP Business One中使用SDK创建了UDO,但是当我运行项目时,我找不到默认表单。

任何人都会帮我解决问题是什么?

我的代码是:

SAPbobsCOM.UserObjectsMD UDO = 
(SAPbobsCOM.UserObjectsMD)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);

UDO.Code = "STCONS";
UDO.Name = "StConsignment";
UDO.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document;
UDO.TableName = "OCONS";
UDO.ChildTables.TableName = "CONS1";
UDO.ChildTables.Add();

// Set UDO to have a form
UDO.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
// Set UDO to have a menu 
UDO.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.MenuCaption = "st Consignment";
// Set father and gnment of menu item. 
UDO.FatherMenuID = 2304; 
UDO.Position = 1;
// Set UDO menu UID 
UDO.MenuUID = "st_Cons";



//Set Services
UDO.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.CanClose = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;
UDO.CanLog = SAPbobsCOM.BoYesNoEnum.tNO;
UDO.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tNO;
UDO.FindColumns.ColumnAlias = "CountDate";
UDO.FindColumns.ColumnDescription = "Count Date";
UDO.FindColumns.Add();
UDO.FindColumns.ColumnAlias = "CardCode";
UDO.FindColumns.ColumnDescription = "CardCode";
UDO.FindColumns.Add();
UDO.FindColumns.ColumnAlias = "WhsCode";
UDO.FindColumns.ColumnDescription = "WhsCode";
UDO.FindColumns.Add();

if (UDO.Add() != 0)
{
    MessageBox.Show("Failed to add UDO");                   
}

2 个答案:

答案 0 :(得分:0)

我刚才遇到了同样的问题。关闭并重新启动SAP后,我能够查看新的菜单项。这是版本9,补丁级别7。

还测试了再次登录而没有重新启动。模块&gt; <给药>选择公司。再次登录后,菜单项就在那里。

答案 1 :(得分:0)

在SAP支持的帮助下,这是一个有效的解决方案:     SAPbobsCOM.UserObjectsMD oudo =(SAPbobsCOM.UserObjectsMD)(SwissAddonFramework.B1Connector.GetB1Connector()。Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD));             if(oudo.GetByKey(“Verhuur”)== false)             {                 oudo.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES;                 oudo.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES;                 oudo.CanFind = SAPbobsCOM.BoYesNoEnum.tYES;                 oudo.ManageSeries = SAPbobsCOM.BoYesNoEnum.tYES;

            oudo.Code = "Verhuur"; 
            oudo.Name = "Verhuur"; 
            oudo.ObjectType = SAPbobsCOM.BoUDOObjType.boud_Document; 
            oudo.TableName = "Verhuur_Kop"; 

            oudo.FatherMenuID = 2048; 
            oudo.MenuCaption = "verhuur"; 
            oudo.MenuUID = "verhuur"; 
            oudo.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES; 

            //For Header 
            oudo.FormColumns.FormColumnAlias = "DocEntry"; 
            oudo.FormColumns.FormColumnDescription = "DocEntry";
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "DocNum";
            oudo.FormColumns.FormColumnDescription = "DocNum";
            //oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FindColumns.ColumnAlias = "DocNum";
            oudo.FindColumns.ColumnDescription = "DocNum";
            oudo.FindColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_DocDate";
            oudo.FormColumns.FormColumnDescription = "DocDate";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_DelDate";
            oudo.FormColumns.FormColumnDescription = "DelDate";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_DocStatus";
            oudo.FormColumns.FormColumnDescription = "DocStatus";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_CardCode"; 
            oudo.FormColumns.FormColumnDescription = "CardCode";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_CardName";
            oudo.FormColumns.FormColumnDescription = "CardName";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_ShipTo";
            oudo.FormColumns.FormColumnDescription = "ShipTo";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_BillTo";
            oudo.FormColumns.FormColumnDescription = "BillTo";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_NumAtCard";
            oudo.FormColumns.FormColumnDescription = "NumAtCard";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_Contact";
            oudo.FormColumns.FormColumnDescription = "Contact";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_PayTerm";
            oudo.FormColumns.FormColumnDescription = "PayTerm";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_PayType";
            oudo.FormColumns.FormColumnDescription = "PayType";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_RentType";
            oudo.FormColumns.FormColumnDescription = "RentType";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_SubTotal";
            oudo.FormColumns.FormColumnDescription = "SubTotal";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_Vat";
            oudo.FormColumns.FormColumnDescription = "Vat";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            oudo.FormColumns.FormColumnAlias = "U_Total";
            oudo.FormColumns.FormColumnDescription = "Total";
            oudo.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.FormColumns.Add();

            //For Details 
            oudo.ChildTables.TableName = "Verhuur_Regel";

            oudo.EnhancedFormColumns.ColumnAlias = "U_LineStatus";
            oudo.EnhancedFormColumns.ColumnDescription = "LineStatus";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add(); 

            oudo.EnhancedFormColumns.ColumnAlias = "U_LineType"; 
            oudo.EnhancedFormColumns.ColumnDescription = "LineType"; 
            oudo.EnhancedFormColumns.ColumnIsUsed =SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.ChildNumber = 1; 
            oudo.EnhancedFormColumns.Add(); 

            oudo.EnhancedFormColumns.ColumnAlias = "U_ItemCode"; 
            oudo.EnhancedFormColumns.ColumnDescription = "ItemCode"; 
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.ChildNumber = 1; 
            oudo.EnhancedFormColumns.Add(); 

            oudo.EnhancedFormColumns.ColumnAlias = "U_ItemName"; 
            oudo.EnhancedFormColumns.ColumnDescription = "ItemName"; 
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.Editable= SAPbobsCOM.BoYesNoEnum.tYES; 
            oudo.EnhancedFormColumns.ChildNumber = 1; 
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_Quantity";
            oudo.EnhancedFormColumns.ColumnDescription = "Quantity";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_Price";
            oudo.EnhancedFormColumns.ColumnDescription = "Price";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_Discount";
            oudo.EnhancedFormColumns.ColumnDescription = "Discount";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_VatCode";
            oudo.EnhancedFormColumns.ColumnDescription = "VatCode";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_LineTotal";
            oudo.EnhancedFormColumns.ColumnDescription = "LineTotal";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();

            oudo.EnhancedFormColumns.ColumnAlias = "U_RetDate";
            oudo.EnhancedFormColumns.ColumnDescription = "RetDate";
            oudo.EnhancedFormColumns.ColumnIsUsed = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES;
            oudo.EnhancedFormColumns.ChildNumber = 1;
            oudo.EnhancedFormColumns.Add();


            if (oudo.Add() != 0)
                TextError("error");
            else
                TextOK("ok");