public int ExecDataInitialization(List <DynTrnInitializer> dataProviders) { try { string ns; if (Config.GetValueOf("AppMainNamespace", out ns)) { foreach (DynTrnInitializer dataProvider in dataProviders) { Console.WriteLine(GXResourceManager.GetMessage("GXM_runpgm", new object[] { dataProvider.Name })); string dataProviderClassName = dataProvider.Name.ToLower(); string[] dataProviderClassNameTokens = dataProviderClassName.Split('.'); dataProviderClassNameTokens[dataProviderClassNameTokens.Length - 1] = "a" + dataProviderClassNameTokens[dataProviderClassNameTokens.Length - 1]; dataProviderClassName = string.Join(".", dataProviderClassNameTokens); var dp = ClassLoader.FindInstance(dataProviderClassName, ns, dataProviderClassName, new Object[] { context }, null); object[] parms = new object[1]; //Dataproviders receive 1 sdt collection parameter ClassLoader.ExecuteVoidRef(dp, "execute", parms); IGxCollection bcs = (IGxCollection)parms[0]; int idx = 1; while (idx <= bcs.Count) { var bc = ((GxSilentTrnSdt)bcs.Item(idx)); if (!bc.InsertOrUpdate() || !bc.Success()) { Console.WriteLine(MessagesToString(bc.GetMessages())); } idx++; } } if (dataProviders.Count > 0) { context.CommitDataStores("ExecDataInitialization"); } } this.cleanup(); return(0); } catch (Exception ex) { Console.WriteLine(ex.Message); GXLogging.Error(log, ex); return(1); } }