0

我在 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");                   
}
4

2 回答 2

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");
于 2014-12-21T19:18:43.350 回答
0

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

还测试了在不重新启动的情况下再次登录。模块 > 管理 > 选择公司。再次登录后,菜单项就在那里。

于 2014-04-16T15:36:38.013 回答