如何运行选择"按场景导入"场景 - >按"准备和进口"从代码?
我试过这个:
var importGraph = PX.Data.PXGraph.CreateInstance<SYImportProcessSingle>();
SYMappingActive mapactive = PXSelect<SYMappingActive>.Search<SYMappingActive.mappingID>(importGraph, importproviderID);
importGraph.PrepareImport.PressButton();
但这无法运行&#34;准备&amp;进口&#34; for&#34;按场景导入&#34;我的DAC的图表。
答案 0 :(得分:0)
要检查的第一件事。您可以从应用程序实例执行导入方案吗?我参考Process Import Scenario屏幕(SM206036)。提供程序错误可能是导入方案未分配数据提供程序,或提供程序不可用。
答案 1 :(得分:0)
以下是如何做到这一点的示例。我已经为SalesOrder写了这个,但你可以为任何其他屏幕修改它。此外,如果同一屏幕上存在多个导入方案,则此代码将使用第一个活动方案。
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
#region Actions
public PXAction<SOOrder> RunScenario;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "RUN")]
protected void runScenario()
{
var importGraph = PXGraph.CreateInstance<SYImportProcessSingle>();
var myMapping = PXSelect<SYMapping, Where<SYMapping.screenID, Equal<Required<SYMapping.screenID>>>>.Select(importGraph, Base.Accessinfo.ScreenID.Replace(".", string.Empty));
if (myMapping.Any())
{
importGraph.MappingsSingle.Current = importGraph.MappingsSingle.Search<SYMappingActive.name>(((SYMapping)myMapping.First(x => ((SYMapping)x).IsActive ?? false)).Name);
importGraph.Prepare.Press();
PXLongOperation.WaitCompletion(importGraph.UID);
importGraph.Clear(PXClearOption.ClearAll);
importGraph.MappingsSingle.Current = importGraph.MappingsSingle.Search<SYMappingActive.name>(((SYMapping)myMapping.First(x => ((SYMapping)x).IsActive ?? false)).Name);
importGraph.Import.Press();
PXLongOperation.WaitCompletion(importGraph.UID);
}
}
#endregion
}