Acumatica “客户行动”;“扩展到供应商”;

Acumatica “客户行动”;“扩展到供应商”;,acumatica,Acumatica,使用Acumatica 5的最新版本以及最新和最好的更新,我遇到了一个我无法解决的Web API问题。我有代码在客户屏幕上执行“扩展到供应商”操作。它似乎运行良好,没有出错,但无法创建供应商。在我看来,当通过网站界面执行相同的操作时,问题在于我没有发送正确的命令来选择弹出警告框上的“是”按钮“请确认是否要使用供应商类默认值更新当前供应商设置。否则将保留原始设置。”我可以完全离开,任何帮助都将不胜感激 这是我的密码: String customerId = "SomeCustomerId"; St

使用Acumatica 5的最新版本以及最新和最好的更新,我遇到了一个我无法解决的Web API问题。我有代码在客户屏幕上执行“扩展到供应商”操作。它似乎运行良好,没有出错,但无法创建供应商。在我看来,当通过网站界面执行相同的操作时,问题在于我没有发送正确的命令来选择弹出警告框上的“是”按钮“请确认是否要使用供应商类默认值更新当前供应商设置。否则将保留原始设置。”我可以完全离开,任何帮助都将不胜感激

这是我的密码:

String customerId = "SomeCustomerId";
String vendorClass = “SomeVendorClass”;

AcumaticaApiWS.AR303000Content AR303000 = context.AR303000GetSchema();
AcumaticaApiWS.AP303000Content AP303000 = context.AP303000GetSchema();

context.AR303000Clear();
AR303000.Actions.ExtendToVendor.Commit = true;

AcumaticaApiWS.AR303000Content[] AR303000result = context.AR303000Submit
(
    new AcumaticaApiWS.Command[]
    {
        new AcumaticaApiWS.Value { Value = customerId, LinkedCommand = AR303000.CustomerSummary.CustomerID },
        AR303000.Actions.ExtendToVendor
    }   
);

AcumaticaApiWS.AP303000Content[] AP303000result = context.AP303000Submit
(
    new AcumaticaApiWS.Command[]
    {
        new AcumaticaApiWS.Value { Value = vendorClass, LinkedCommand = AP303000.GeneralInfoFinancialSettings.VendorClass },
        new AcumaticaApiWS.Value { Value = "YES", LinkedCommand = AP303000.GeneralInfoFinancialSettings.ServiceCommands.DialogAnswer, Commit = true },
        AP303000.Actions.Save
    }
);

谢谢

你就快到了。这不是一个简单的场景,因为它涉及多个屏幕和对话框,这两件事使用起来并不简单。代码示例中的问题有:

  • 对话框答案必须在值之前设置。在您的情况下,首先要设置vendor类。这是违反直觉的,但在显示对话框之前,系统必须知道这一点
  • 对话框的答案是“是”,而不是“是”。通过使用web浏览器检查器窗口并查看按钮标题,可以看到这一点。由于CSS样式,文本以大写形式显示
  • 您需要在显示对话框的窗体主视图(
    AP303000.VendorSummary.servicecondoms.DialogAnswer
    )上设置对话框答案。如果不看源代码,就无法知道这一点,但我相信对话框通常就是这样
  • 不同的
    Commit=true
    设置是不必要的(但在这种情况下没有坏处)
这是我使用的代码,在我的例子中,它将客户扩展到供应商,同时更改供应商类:

String customerId = "ACTIVESTAF";
String vendorClass = "DATACENTER";

AcumaticaApiWS.AR303000Content AR303000 = context.AR303000GetSchema();
AcumaticaApiWS.AP303000Content AP303000 = context.AP303000GetSchema();

context.AR303000Clear();

AcumaticaApiWS.AR303000Content[] AR303000result = context.AR303000Submit
(
    new AcumaticaApiWS.Command[]
    {
        new AcumaticaApiWS.Value { Value = customerId, LinkedCommand = AR303000.CustomerSummary.CustomerID },
        AR303000.Actions.ExtendToVendor
    }
);

AcumaticaApiWS.AP303000Content[] AP303000result = context.AP303000Submit
(
    new AcumaticaApiWS.Command[]
    {
        new AcumaticaApiWS.Value { Value = "Yes", LinkedCommand = AP303000.VendorSummary.ServiceCommands.DialogAnswer },
        new AcumaticaApiWS.Value { Value = vendorClass, LinkedCommand = AP303000.GeneralInfoFinancialSettings.VendorClass },
        AP303000.Actions.Save
    }
);

@尤拉扎勒茨基你什么意思?这应该包括在T900?T900 ACUMATICA WEB服务中。我的意思是,如果出现弹出窗口,如何对案例进行导入/导出操作。@Yurazaletsky我们目前正在重做web服务培训,将与大家分享。