Initial commit

This commit is contained in:
蔡浩 2024-01-15 10:57:41 +08:00
commit 1ce16787a9
220 changed files with 57241 additions and 0 deletions

10
.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
*.xml
*.dll
*.suo
*.cache
/SRC/MES_C_DLL
/SRC/MES_S_DLL
/SRC/MESClient
/SRC/**/obj
/SRC/**/.vs

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
SQLScript/InitData.xlsx Normal file

Binary file not shown.

BIN
SQLScript/Tables.xlsx Normal file

Binary file not shown.

View File

@ -0,0 +1,31 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 一般的組件資訊是由下列這組屬性所控制。
// 變更這些屬性的值即可修改組件的相關資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("AutoLoaderLib")]
[assembly: AssemblyDescription("AutoLoaderLib for MESSeries")]
[assembly: AssemblyCompany("iMES Technology Inc.")]
[assembly: AssemblyProduct("MESSeries 6")]
[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("7BE710A6-63DB-4425-9C60-EC4387F6A585")]
// 組件的版本資訊由下列四個值所組成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂
//
// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號
// 指定為預設值:
[assembly: AssemblyVersion("6.0.0.0")]
[assembly: AssemblyFileVersion("6.0.0.0")]

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}</ProjectGuid>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>AutoLoaderLib_C</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyMode>None</AssemblyOriginatorKeyMode>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>Library</OutputType>
<OptionCompare>Binary</OptionCompare>
<OptionExplicit>On</OptionExplicit>
<OptionStrict>Off</OptionStrict>
<RootNamespace>AutoLoaderLib_C</RootNamespace>
<StartupObject>
</StartupObject>
<WebReference_EnableProperties>true</WebReference_EnableProperties>
<WebReference_EnableSQLTypes>false</WebReference_EnableSQLTypes>
<WebReference_EnableLegacyEventingModel>true</WebReference_EnableLegacyEventingModel>
<FileUpgradeFlags>
</FileUpgradeFlags>
<MyType>Windows</MyType>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SignAssembly>false</SignAssembly>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<OldToolsVersion>2.0</OldToolsVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>..\..\MES_S_DLL\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\AutoLoaderLib_C.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>..\..\MES_S_DLL\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\AutoLoaderLib_C.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>none</DebugType>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="data_access_service, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\data_access_service.dll</HintPath>
</Reference>
<Reference Include="iMESAppSetting, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESAppSetting.dll</HintPath>
</Reference>
<Reference Include="iMESComSubroutine, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESComSubroutine.dll</HintPath>
</Reference>
<Reference Include="iMESComXML, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESComXML.dll</HintPath>
</Reference>
<Reference Include="iMESConst, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESConst.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_C_DLL\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NPOI, Version=2.0.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_C_DLL\NPOI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NPOI.OOXML, Version=2.0.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_C_DLL\NPOI.OOXML.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NPOI.OpenXml4Net, Version=2.0.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_C_DLL\NPOI.OpenXml4Net.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NPOI.OpenXmlFormats, Version=2.0.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_C_DLL\NPOI.OpenXmlFormats.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.Services">
<Name>System.Web.Services</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
</ItemGroup>
<ItemGroup>
<Compile Include="Web References\wsInvoke\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<None Include="app.config" />
<None Include="My Project\Settings.settings">
<CustomToolNamespace>AutoLoaderLib_C.My</CustomToolNamespace>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="clsAutoLoaderLibrary.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="EPIParseTemplate.cs" />
<Compile Include="modAutoLoaderLibrary.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="modWIN.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="ParseNEL.cs" />
<Compile Include="ParsePL.cs" />
<Compile Include="ParsePR.cs" />
<Compile Include="ParseQEL.cs" />
<None Include="Web References\wsInvoke\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsInvoke\wsInvoke.wsdl" />
<WebReferences Include="Web References\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<WebReferenceUrl Include="http://localhost/MESws_Industry/wsInvoke.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsInvoke\</RelPath>
<UpdateFromURL>http://localhost/MESws_Industry/wsInvoke.asmx</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoLoaderLib_wsInvoke_wsInvoke</CachedSettingsPropName>
</WebReferenceUrl>
</ItemGroup>
<ItemGroup>
<None Include="Web References\wsInvoke\wsInvoke.disco" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,32 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoaderLib_C", "AutoLoaderLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 1
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
SccProjectUniqueName0 = AutoLoaderLib_C.csproj
SccProjectName0 = .
SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6
SccLocalPath0 = .
SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,236 @@
using System;
using System.Data;
using System.IO;
using iMESCore.Settings;
using Microsoft.VisualBasic;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_C
{
public abstract class EPIParseTemplate
{
// 設定暫存資料表的欄位
internal abstract bool AddColumns(DataTable dt);
// 解析資料, 並寫入暫存資料表
internal abstract bool ParsingFile(DataTable dt, string file);
// 將暫存資料表寫入資料庫
internal abstract bool InsertTable(DataTable dt);
internal IDbConnection objConnection;
public enum FileTypeEnum
{
csv = 0,
xls = 1,
dat = 2
}
private string[] wildcards = new string[] { "*.csv", "*.xls", "*.dat" };
private string strDataBaseType; // DataBase Type:oracle, mysql, access
private string strConnectionString; // Connection string
private AppSettings objSetting = new AppSettings();
private DataTable objDataTable;
private string SourcePath;
private string DestinationPath;
private string QueuePath;
private string FailPath;
/// <summary>
/// 建構子
/// </summary>
/// <param name="paramSourcePath"></param>
/// <param name="paramDestinationPath"></param>
/// <param name="paramQueuePath"></param>
/// <param name="paramFailPath"></param>
/// <remarks></remarks>
public EPIParseTemplate(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath)
{
objSetting = new AppSettings();
// //Get database type
strDataBaseType = objSetting.GetDataBaseType();
// //Get connection string
strConnectionString = objSetting.GetConnectionString(strDataBaseType);
objConnection = CreateConnection(strConnectionString);
if (Strings.Right(paramSourcePath, 1) != @"\")
{
paramSourcePath += @"\";
}
SourcePath = paramSourcePath;
if (Strings.Right(paramDestinationPath, 1) != @"\")
{
paramDestinationPath += @"\";
}
DestinationPath = paramDestinationPath;
if (Strings.Right(paramQueuePath, 1) != @"\")
{
paramQueuePath += @"\";
}
QueuePath = paramQueuePath;
if (Strings.Right(paramFailPath, 1) != @"\")
{
paramFailPath += @"\";
}
FailPath = paramFailPath;
}
~EPIParseTemplate()
{
if (objConnection != null)
{
objConnection = null;
}
if (objSetting != null)
{
objSetting = null;
}
if (objDataTable != null)
{
objDataTable = null;
}
}
/// <summary>
/// 解析資料
/// </summary>
/// <param name="paramFileType"></param>
/// <returns></returns>
/// <remarks></remarks>
public string ParsingData(FileTypeEnum paramFileType)
{
string strResult = string.Empty;
string QueueFile = "";
string DestinationFile = "";
string FailFile = "";
try
{
objDataTable = new DataTable("RawData");
// 設定暫存資料表的欄位
if (AddColumns(objDataTable))
{
foreach (var SourceFile in Directory.GetFiles(SourcePath, wildcards[(int)paramFileType], SearchOption.TopDirectoryOnly))
{
if (File.Exists(SourceFile))
{
QueueFile = QueuePath + Path.GetFileName(SourceFile);
DestinationFile = DestinationPath + Path.GetFileName(SourceFile);
FailFile = FailPath + Path.GetFileName(SourceFile);
try
{
// 將檔案從 Source 移至 Queue
MoveFile(SourceFile, QueueFile);
objDataTable.Rows.Clear();
// 解析資料, 並寫入暫存資料表
if (ParsingFile(objDataTable, QueueFile))
{
// 將暫存資料表寫入資料庫
if (InsertTable(objDataTable))
{
// 將檔案從 Queue 移至 Destination
MoveFile(QueueFile, DestinationFile);
}
}
}
catch (Exception ex)
{
// 將檔案從 Queue 移至 Fail
MoveFile(QueueFile, FailFile);
throw;
}
}
}
strResult = "success";
}
}
catch (Exception ex)
{
strResult = "Message:" + ex.Message + ",StackTrace:" + ex.StackTrace;
}
finally
{
}
return strResult;
}
/// <summary>
/// 搬移檔案
/// </summary>
/// <param name="paramSourceFile">來源檔案</param>
/// <param name="paramTargetFile">目的檔案</param>
/// <remarks></remarks>
private void MoveFile(string paramSourceFile, string paramTargetFile)
{
try
{
// 判斷目的檔案是否已存在, 若存在必須先刪除
if (File.Exists(paramTargetFile))
{
File.Delete(paramTargetFile);
}
// 移動檔案至目的
Directory.Move(paramSourceFile, paramTargetFile);
}
catch (Exception ex)
{
throw;
}
}
}
}

View File

@ -0,0 +1,101 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System.Diagnostics;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
namespace AutoLoaderLib_C.My
{
[System.Runtime.CompilerServices.CompilerGenerated()]
[System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase
{
private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings());
#region My.Settings
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
#endregion
public static MySettings Default
{
get
{
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
return defaultInstance;
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://localhost/MESws_Industry/wsInvoke.asmx")]
public string AutoLoaderLib_wsInvoke_wsInvoke
{
get
{
return Conversions.ToString(this["AutoLoaderLib_wsInvoke_wsInvoke"]);
}
}
}
}
namespace AutoLoaderLib_C.My
{
[HideModuleName()]
[DebuggerNonUserCode()]
[System.Runtime.CompilerServices.CompilerGenerated()]
internal static class MySettingsProperty
{
[System.ComponentModel.Design.HelpKeyword("My.Settings")]
internal static MySettings Settings
{
get
{
return MySettings.Default;
}
}
}
}

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="AutoLoaderLib_wsInvoke_wsInvoke" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://localhost/MESws_Industry/wsInvoke.asmx</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,247 @@
using System;
using System.Data;
using System.Diagnostics;
using System.IO;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_C
{
public class ParseNEL : EPIParseTemplate
{
// 呼叫父類別的建構子
public ParseNEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath)
{
}
/// <summary>
/// 設定暫存資料表的欄位
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool AddColumns(DataTable dt)
{
bool blnResult = false;
try
{
dt.Columns.Add("WaferID", Type.GetType("System.String"));
dt.Columns.Add("POS", Type.GetType("System.Decimal"));
dt.Columns.Add("LOP1", Type.GetType("System.Decimal"));
dt.Columns.Add("WLD1", Type.GetType("System.Decimal"));
dt.Columns.Add("VF1", Type.GetType("System.Decimal"));
blnResult = true;
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 將暫存資料表寫入資料庫
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool InsertTable(DataTable dt)
{
bool blnResult = false;
string strSQL_Raw;
string strSQL_Avg;
string WaferID = "";
decimal LOP1 = 0m;
decimal WLD1 = 0m;
decimal VF1 = 0m;
strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_N_RAW " + " (WaferID, CreateDate, POS, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}) ";
strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_N " + " (WaferID, CreateDate, LOP1, WLD1, VF1) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}) ";
try
{
using (var oTran = objConnection.BeginTransaction())
{
try
{
using (var cmd = CreateCommand())
{
cmd.Connection = objConnection;
cmd.Transaction = oTran;
if (dt.Rows.Count > 0)
{
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
{
cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"]);
cmd.ExecuteNonQuery();
WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]);
LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"];
WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"];
VF1 = VF1 + (decimal)dt.Rows[i]["VF1"];
}
cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count);
cmd.ExecuteNonQuery();
}
}
oTran.Commit();
blnResult = true;
}
catch (Exception ex)
{
oTran.Rollback();
throw;
}
}
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 解析資料, 並寫入暫存資料表
/// </summary>
/// <param name="dt"></param>
/// <param name="file"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool ParsingFile(DataTable dt, string file)
{
bool blnResult = false;
DataRow dr = null;
string line;
string[] tmpData;
bool startParsing = false;
string WaferID;
try
{
// 檔名即為 WaferID
var fi = new FileInfo(file);
WaferID = fi.Name.Replace(fi.Extension, "");
fi = null;
using (var sr = new StreamReader(file))
{
do
{
line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
{
if (startParsing)
{
tmpData = line.Split(',');
dr = dt.NewRow();
dr["WaferID"] = WaferID;
dr["POS"] = Convert.ToDecimal(tmpData[0].Trim());
dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim());
dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim());
dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim());
dt.Rows.Add(dr);
}
else
{
Debug.Print(line);
if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0)
{
startParsing = true;
}
}
}
}
while (!(line == null));
blnResult = true;
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (dr != null)
{
dr = null;
}
}
return blnResult;
}
}
}

View File

@ -0,0 +1,245 @@
using System;
using System.Data;
using System.IO;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_C
{
public class ParsePL : EPIParseTemplate
{
// 呼叫父類別的建構子
public ParsePL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath)
{
}
/// <summary>
/// 設定暫存資料表的欄位
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool AddColumns(DataTable dt)
{
bool blnResult = false;
try
{
dt.Columns.Add("WaferID", Type.GetType("System.String"));
dt.Columns.Add("MeasurementTime", Type.GetType("System.String"));
dt.Columns.Add("NG", Type.GetType("System.Decimal"));
dt.Columns.Add("OK", Type.GetType("System.Decimal"));
dt.Columns.Add("Yield", Type.GetType("System.String"));
dt.Columns.Add("Setup", Type.GetType("System.String"));
dt.Columns.Add("LaserOutput", Type.GetType("System.String"));
dt.Columns.Add("WPMIN", Type.GetType("System.Decimal"));
dt.Columns.Add("WPMAX", Type.GetType("System.Decimal"));
dt.Columns.Add("WPAVG", Type.GetType("System.Decimal"));
dt.Columns.Add("WPDEV", Type.GetType("System.Decimal"));
dt.Columns.Add("FWHMMIN", Type.GetType("System.Decimal"));
dt.Columns.Add("FWHMMAX", Type.GetType("System.Decimal"));
dt.Columns.Add("FWHMAVG", Type.GetType("System.Decimal"));
dt.Columns.Add("FWHMDEV", Type.GetType("System.Decimal"));
dt.Columns.Add("WDMIN", Type.GetType("System.Decimal"));
dt.Columns.Add("WDMAX", Type.GetType("System.Decimal"));
dt.Columns.Add("WDAVG", Type.GetType("System.Decimal"));
dt.Columns.Add("WDDEV", Type.GetType("System.Decimal"));
blnResult = true;
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 將暫存資料表寫入資料庫
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool InsertTable(DataTable dt)
{
bool blnResult = false;
string strSQL;
strSQL = " INSERT INTO TBL_LEDLD_PL " + " (WaferID, CreateDate, MeasurementTime, NG, OK, Yield, Setup, LaserOutput, " + " WPMIN, WPMAX, WPAVG, WPDEV, " + " FWHMMIN, FWHMMAX, FWHMAVG, FWHMDEV, " + " WDMIN, WDMAX, WDAVG, WDDEV) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, '{4}', '{5}', '{6}', " + " {7}, {8}, {9}, {10}, " + " {11}, {12}, {13}, {14}, " + " {15}, {16}, {17}, {18}) ";
try
{
using (var oTran = objConnection.BeginTransaction())
{
try
{
using (var cmd = CreateCommand())
{
cmd.Connection = objConnection;
cmd.Transaction = oTran;
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
{
cmd.CommandText = string.Format(strSQL, dt.Rows[i]["WaferID"], dt.Rows[i]["MeasurementTime"], dt.Rows[i]["NG"], dt.Rows[i]["OK"], dt.Rows[i]["Yield"], dt.Rows[i]["Setup"], dt.Rows[i]["LaserOutput"], dt.Rows[i]["WPMIN"], dt.Rows[i]["WPMAX"], dt.Rows[i]["WPAVG"], dt.Rows[i]["WPDEV"], dt.Rows[i]["FWHMMIN"], dt.Rows[i]["FWHMMAX"], dt.Rows[i]["FWHMAVG"], dt.Rows[i]["FWHMDEV"], dt.Rows[i]["WDMIN"], dt.Rows[i]["WDMAX"], dt.Rows[i]["WDAVG"], dt.Rows[i]["WDDEV"]);
cmd.ExecuteNonQuery();
}
}
oTran.Commit();
blnResult = true;
}
catch (Exception ex)
{
oTran.Rollback();
throw;
}
}
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 解析資料, 並寫入暫存資料表
/// </summary>
/// <param name="dt"></param>
/// <param name="file"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool ParsingFile(DataTable dt, string file)
{
bool blnResult = false;
DataRow dr = null;
string line;
string[] tmpData;
string LotNo;
try
{
// 檔名即為 LotNo
var fi = new FileInfo(file);
LotNo = fi.Name.Replace(fi.Extension, "");
fi = null;
using (var sr = new StreamReader(file))
{
// 第一行是欄位抬頭
line = sr.ReadLine();
do
{
line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
{
tmpData = line.Split(',');
dr = dt.NewRow();
dr["WaferID"] = tmpData[4].Trim() + tmpData[5].Trim().Substring(tmpData[5].Trim().Length - 2);
dr["MeasurementTime"] = tmpData[3].Trim();
dr["NG"] = Convert.ToDecimal(tmpData[11].Trim());
dr["OK"] = Convert.ToDecimal(tmpData[12].Trim());
dr["Yield"] = tmpData[13].Trim();
dr["Setup"] = tmpData[14].Trim();
dr["LaserOutput"] = tmpData[15].Trim();
dr["WPMIN"] = Convert.ToDecimal(tmpData[16].Trim());
dr["WPMAX"] = Convert.ToDecimal(tmpData[17].Trim());
dr["WPAVG"] = Convert.ToDecimal(tmpData[18].Trim());
dr["WPDEV"] = Convert.ToDecimal(tmpData[20].Trim());
dr["FWHMMIN"] = Convert.ToDecimal(tmpData[28].Trim());
dr["FWHMMAX"] = Convert.ToDecimal(tmpData[29].Trim());
dr["FWHMAVG"] = Convert.ToDecimal(tmpData[30].Trim());
dr["FWHMDEV"] = Convert.ToDecimal(tmpData[32].Trim());
dr["WDMIN"] = Convert.ToDecimal(tmpData[40].Trim());
dr["WDMAX"] = Convert.ToDecimal(tmpData[41].Trim());
dr["WDAVG"] = Convert.ToDecimal(tmpData[42].Trim());
dr["WDDEV"] = Convert.ToDecimal(tmpData[44].Trim());
dt.Rows.Add(dr);
}
}
while (!string.IsNullOrEmpty(line));
blnResult = true;
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (dr != null)
{
dr = null;
}
}
return blnResult;
}
}
}

View File

@ -0,0 +1,380 @@
using System;
using System.Data;
using System.IO;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_C
{
public class ParsePR : EPIParseTemplate
{
// 呼叫父類別的建構子
public ParsePR(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath)
{
}
/// <summary>
/// 設定暫存資料表的欄位
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool AddColumns(DataTable dt)
{
bool blnResult = false;
try
{
dt.Columns.Add("WaferID", Type.GetType("System.String"));
dt.Columns.Add("RawData", Type.GetType("System.String"));
dt.Columns.Add("Average", Type.GetType("System.Decimal"));
dt.Columns.Add("Diff1", Type.GetType("System.Decimal"));
dt.Columns.Add("Diff2", Type.GetType("System.Decimal"));
dt.Columns.Add("PR_GRADE", Type.GetType("System.String"));
dt.Columns.Add("PR_RESULT", Type.GetType("System.String"));
blnResult = true;
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 將暫存資料表寫入資料庫
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool InsertTable(DataTable dt)
{
bool blnResult = false;
string strSQL;
string strSQL2;
string strSQL3;
const string PR_GRADE = "PR Grade";
// 新增 PR 資料
strSQL = " INSERT INTO TBL_LEDLD_PR " + " (WaferID, CreateDate, RawData, Average, Diff1, Diff2, PR_GRADE, PR_RESULT) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, {4}, '{5}', '{6}') ";
// 刪除 ComponentProperty PR_GRADE 的資料
strSQL2 = " DELETE TBLWIPCOMPONENTPROPERTY " + " WHERE LOTNO = '{0}' " + " AND COMPONENTNO = '{1}' " + " AND PROPERTYNO = '{2}' ";
// 新增 ComponentProperty PR_GRADE 的資料
strSQL3 = " INSERT INTO TBLWIPCOMPONENTPROPERTY " + " (LOTNO, COMPONENTNO, PROPERTYNO, PROPERTYVALUE) " + " VALUES ('{0}', '{1}', '{2}', '{3}') ";
try
{
using (var oTran = objConnection.BeginTransaction())
{
try
{
using (var cmd = CreateCommand())
{
cmd.Connection = objConnection;
cmd.Transaction = oTran;
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
{
cmd.CommandText = string.Format(strSQL, Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), Operators.ConcatenateObject(dt.Rows[i]["RawData"], ""), dt.Rows[i]["Average"], dt.Rows[i]["Diff1"], dt.Rows[i]["Diff2"], Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], ""), Operators.ConcatenateObject(dt.Rows[i]["PR_RESULT"], ""));
cmd.ExecuteNonQuery();
cmd.CommandText = string.Format(strSQL2, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE);
cmd.ExecuteNonQuery();
cmd.CommandText = string.Format(strSQL3, Strings.Mid(Conversions.ToString(Operators.ConcatenateObject(dt.Rows[i]["WaferID"], "")), 1, 10), Operators.ConcatenateObject(dt.Rows[i]["WaferID"], ""), PR_GRADE, Operators.ConcatenateObject(dt.Rows[i]["PR_GRADE"], ""));
cmd.ExecuteNonQuery();
}
}
oTran.Commit();
blnResult = true;
}
catch (Exception ex)
{
oTran.Rollback();
throw;
}
}
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 解析資料, 並寫入暫存資料表
/// </summary>
/// <param name="dt"></param>
/// <param name="file"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool ParsingFile(DataTable dt, string file)
{
bool blnResult = false;
DataRow dr = null;
string line;
string[] tmpData;
string WaferID;
string RawData = "";
decimal Average = 0m;
decimal Diff1 = 0m;
decimal Diff2 = 0m;
string PR_Grade;
string PR_Result;
try
{
// 檔名即為 WaferID
var fi = new FileInfo(file);
WaferID = fi.Name.Replace(fi.Extension, "");
fi = null;
using (var sr = new StreamReader(file))
{
do
{
line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
{
tmpData = line.Split('\t');
if (tmpData != null && tmpData.Length == 2)
{
if (!Information.IsNumeric(tmpData[1]))
{
tmpData[1] = "0";
}
switch (tmpData[0].ToUpper() ?? "")
{
case "AVERAGE":
{
Average = Convert.ToDecimal(tmpData[1]);
break;
}
case "DIFF1":
{
Diff1 = Convert.ToDecimal(tmpData[1]);
break;
}
case "DIFF2":
{
Diff2 = Convert.ToDecimal(tmpData[1]);
break;
}
default:
{
RawData += tmpData[0] + "=" + tmpData[1] + ",";
break;
}
}
}
}
}
while (!string.IsNullOrEmpty(line));
if (RawData.Length > 0)
{
RawData = RawData.Substring(0, RawData.Length - 1);
// 依 Average 取出 Grade
PR_Grade = PRGrade(Average);
if (string.IsNullOrEmpty(PR_Grade))
{
throw new Exception("PR_Grade fail。");
}
// 依 Diff 取出 Grade
switch (PRGrade(Diff1) ?? "")
{
case "":
{
throw new Exception("PR_Result fail。");
}
case "N/A":
{
PR_Result = "NG";
break;
}
default:
{
PR_Result = "OK";
break;
}
}
dr = dt.NewRow();
dr["WaferID"] = WaferID;
dr["RawData"] = RawData;
dr["Average"] = Average;
dr["Diff1"] = Diff1;
dr["Diff2"] = Diff2;
dr["PR_GRADE"] = PR_Grade;
dr["PR_RESULT"] = PR_Result;
dt.Rows.Add(dr);
blnResult = true;
}
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (dr != null)
{
dr = null;
}
}
return blnResult;
}
/// <summary>
/// PR 等級編碼原則
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
/// <remarks></remarks>
private string PRGrade(decimal value)
{
string strGrade = "N/A";
string[] tmpData;
var CollectionGrade = new Collection();
CollectionGrade.Add("0~1.5~A1");
CollectionGrade.Add("1.5~2~A2");
CollectionGrade.Add("2~3~A3");
CollectionGrade.Add("3~6~A4");
CollectionGrade.Add("6~9~A5");
CollectionGrade.Add("9~12~A6");
CollectionGrade.Add("12~15~A7");
CollectionGrade.Add("15~18~A8");
CollectionGrade.Add("18~24~A9");
CollectionGrade.Add("24~30~AA");
CollectionGrade.Add("30~36~AB");
CollectionGrade.Add("36~9999~AC");
try
{
foreach (string str in CollectionGrade)
{
tmpData = Strings.Split(str, "~");
if (tmpData.Length != 3)
{
break;
}
if (!Information.IsNumeric(tmpData[0]) || !Information.IsNumeric(tmpData[1]))
{
break;
}
if ((double)value >= Conversions.ToDouble(tmpData[0]) && (double)value < Conversions.ToDouble(tmpData[1]))
{
strGrade = tmpData[2];
break;
}
}
}
catch (Exception ex)
{
strGrade = "";
}
return strGrade;
}
}
}

View File

@ -0,0 +1,259 @@
using System;
using System.Data;
using System.IO;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_C
{
public class ParseQEL : EPIParseTemplate
{
// 呼叫父類別的建構子
public ParseQEL(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath)
{
}
/// <summary>
/// 設定暫存資料表的欄位
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool AddColumns(DataTable dt)
{
bool blnResult = false;
try
{
dt.Columns.Add("WaferID", Type.GetType("System.String"));
dt.Columns.Add("POS", Type.GetType("System.Decimal"));
dt.Columns.Add("LOP1", Type.GetType("System.Decimal"));
dt.Columns.Add("LOP2", Type.GetType("System.Decimal"));
dt.Columns.Add("WLP1", Type.GetType("System.Decimal"));
dt.Columns.Add("WLD1", Type.GetType("System.Decimal"));
dt.Columns.Add("VF1", Type.GetType("System.Decimal"));
dt.Columns.Add("VF2", Type.GetType("System.Decimal"));
blnResult = true;
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 將暫存資料表寫入資料庫
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool InsertTable(DataTable dt)
{
bool blnResult = false;
string strSQL_Raw;
string strSQL_Avg;
string WaferID = "";
decimal LOP1 = 0m;
decimal LOP2 = 0m;
decimal WLP1 = 0m;
decimal WLD1 = 0m;
decimal VF1 = 0m;
decimal VF2 = 0m;
strSQL_Raw = " INSERT INTO TBL_LEDLD_EL_Q_RAW " + " (WaferID, CreateDate, POS, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}, {7}) ";
strSQL_Avg = " INSERT INTO TBL_LEDLD_EL_Q " + " (WaferID, CreateDate, LOP1, LOP2, WLP1, WLD1, VF1, VF2) " + " VALUES ('{0}', SYSDATE, {1}, {2}, {3}, {4}, {5}, {6}) ";
try
{
using (var oTran = objConnection.BeginTransaction())
{
try
{
using (var cmd = CreateCommand())
{
cmd.Connection = objConnection;
cmd.Transaction = oTran;
if (dt.Rows.Count > 0)
{
for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
{
cmd.CommandText = string.Format(strSQL_Raw, dt.Rows[i]["WaferID"], dt.Rows[i]["POS"], dt.Rows[i]["LOP1"], dt.Rows[i]["LOP2"], dt.Rows[i]["WLP1"], dt.Rows[i]["WLD1"], dt.Rows[i]["VF1"], dt.Rows[i]["VF2"]);
cmd.ExecuteNonQuery();
WaferID = Conversions.ToString(dt.Rows[i]["WaferID"]);
LOP1 = LOP1 + (decimal)dt.Rows[i]["LOP1"];
LOP2 = LOP2 + (decimal)dt.Rows[i]["LOP2"];
WLP1 = WLP1 + (decimal)dt.Rows[i]["WLP1"];
WLD1 = WLD1 + (decimal)dt.Rows[i]["WLD1"];
VF1 = VF1 + (decimal)dt.Rows[i]["VF1"];
VF2 = VF2 + (decimal)dt.Rows[i]["VF2"];
}
cmd.CommandText = string.Format(strSQL_Avg, WaferID, LOP1 / dt.Rows.Count, LOP2 / dt.Rows.Count, WLP1 / dt.Rows.Count, WLD1 / dt.Rows.Count, VF1 / dt.Rows.Count, VF2 / dt.Rows.Count);
cmd.ExecuteNonQuery();
}
}
oTran.Commit();
blnResult = true;
}
catch (Exception ex)
{
oTran.Rollback();
throw;
}
}
}
catch (Exception ex)
{
throw;
}
return blnResult;
}
/// <summary>
/// 解析資料, 並寫入暫存資料表
/// </summary>
/// <param name="dt"></param>
/// <param name="file"></param>
/// <returns></returns>
/// <remarks></remarks>
internal override bool ParsingFile(DataTable dt, string file)
{
bool blnResult = false;
DataRow dr = null;
string line;
string[] tmpData;
bool startParsing = false;
string WaferID;
try
{
// 檔名即為 WaferID
var fi = new FileInfo(file);
WaferID = fi.Name.Replace(fi.Extension, "");
fi = null;
using (var sr = new StreamReader(file))
{
do
{
line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
{
if (startParsing)
{
tmpData = line.Split(',');
dr = dt.NewRow();
dr["WaferID"] = WaferID;
dr["POS"] = Convert.ToDecimal(tmpData[0].Trim());
dr["LOP1"] = Convert.ToDecimal(tmpData[4].Trim());
dr["LOP2"] = Convert.ToDecimal(tmpData[14].Trim());
dr["WLP1"] = Convert.ToDecimal(tmpData[6].Trim());
dr["WLD1"] = Convert.ToDecimal(tmpData[5].Trim());
dr["VF1"] = Convert.ToDecimal(tmpData[3].Trim());
dr["VF2"] = Convert.ToDecimal(tmpData[13].Trim());
dt.Rows.Add(dr);
}
else if (line.IndexOf("PosX") >= 0 && line.IndexOf("PosY") >= 0)
{
startParsing = true;
}
}
}
while (!(line == null));
blnResult = true;
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (dr != null)
{
dr = null;
}
}
return blnResult;
}
}
}

View File

@ -0,0 +1 @@
[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")]

View File

@ -0,0 +1,779 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
using Microsoft.VisualBasic.CompilerServices;
//
// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。
//
namespace AutoLoaderLib_C.wsInvoke
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
[WebServiceBinding(Name = "wsInvokeSoap", Namespace = "http://www.imestech.com/wsInvoke")]
[XmlInclude(typeof(object[]))]
public partial class wsInvoke : SoapHttpClientProtocol
{
private System.Threading.SendOrPostCallback invokeSrvOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_XmlOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_Xml_SessionOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_DataTableParameterOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_DataTableOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_DataSetOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrv_SessionOperationCompleted;
private System.Threading.SendOrPostCallback TestOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
public wsInvoke() : base()
{
Url = My.MySettings.Default.AutoLoaderLib_wsInvoke_wsInvoke;
if (IsLocalFileSystemWebService(Url) == true)
{
UseDefaultCredentials = true;
useDefaultCredentialsSetExplicitly = false;
}
else
{
useDefaultCredentialsSetExplicitly = true;
}
}
public new string Url
{
get
{
return base.Url;
}
set
{
if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false)
{
base.UseDefaultCredentials = false;
}
base.Url = value;
}
}
public new bool UseDefaultCredentials
{
get
{
return base.UseDefaultCredentials;
}
set
{
base.UseDefaultCredentials = value;
useDefaultCredentialsSetExplicitly = true;
}
}
/// <remarks/>
public event invokeSrvCompletedEventHandler invokeSrvCompleted;
/// <remarks/>
public event invokeSrv_XmlCompletedEventHandler invokeSrv_XmlCompleted;
/// <remarks/>
public event invokeSrv_Xml_SessionCompletedEventHandler invokeSrv_Xml_SessionCompleted;
/// <remarks/>
public event invokeSrv_DataTableParameterCompletedEventHandler invokeSrv_DataTableParameterCompleted;
/// <remarks/>
public event invokeSrv_DataTableCompletedEventHandler invokeSrv_DataTableCompleted;
/// <remarks/>
public event invokeSrv_DataSetCompletedEventHandler invokeSrv_DataSetCompleted;
/// <remarks/>
public event invokeSrv_SessionCompletedEventHandler invokeSrv_SessionCompleted;
/// <remarks/>
public event TestCompletedEventHandler TestCompleted;
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv(string method, object[] parameters)
{
object[] results = Invoke("invokeSrv", new object[] { method, parameters });
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv(string method, object[] parameters, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv", new object[] { method, parameters }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return results[0];
}
/// <remarks/>
public void invokeSrvAsync(string method, object[] parameters)
{
invokeSrvAsync(method, parameters, null);
}
/// <remarks/>
public void invokeSrvAsync(string method, object[] parameters, object userState)
{
if (invokeSrvOperationCompleted == null)
{
invokeSrvOperationCompleted = OninvokeSrvOperationCompleted;
}
InvokeAsync("invokeSrv", new object[] { method, parameters }, invokeSrvOperationCompleted, userState);
}
private void OninvokeSrvOperationCompleted(object arg)
{
if (invokeSrvCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_Xml(string method, string inXMl)
{
object[] results = Invoke("invokeSrv_Xml", new object[] { method, inXMl });
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_Xml(string method, string inXMl, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_Xml", new object[] { method, inXMl }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_Xml(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return results[0];
}
/// <remarks/>
public void invokeSrv_XmlAsync(string method, string inXMl)
{
invokeSrv_XmlAsync(method, inXMl, null);
}
/// <remarks/>
public void invokeSrv_XmlAsync(string method, string inXMl, object userState)
{
if (invokeSrv_XmlOperationCompleted == null)
{
invokeSrv_XmlOperationCompleted = OninvokeSrv_XmlOperationCompleted;
}
InvokeAsync("invokeSrv_Xml", new object[] { method, inXMl }, invokeSrv_XmlOperationCompleted, userState);
}
private void OninvokeSrv_XmlOperationCompleted(object arg)
{
if (invokeSrv_XmlCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_XmlCompleted?.Invoke(this, new invokeSrv_XmlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_Xml_Session(string method, string inXMl)
{
object[] results = Invoke("invokeSrv_Xml_Session", new object[] { method, inXMl });
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_Xml_Session(string method, string inXMl, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_Xml_Session", new object[] { method, inXMl }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_Xml_Session(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return results[0];
}
/// <remarks/>
public void invokeSrv_Xml_SessionAsync(string method, string inXMl)
{
invokeSrv_Xml_SessionAsync(method, inXMl, null);
}
/// <remarks/>
public void invokeSrv_Xml_SessionAsync(string method, string inXMl, object userState)
{
if (invokeSrv_Xml_SessionOperationCompleted == null)
{
invokeSrv_Xml_SessionOperationCompleted = OninvokeSrv_Xml_SessionOperationCompleted;
}
InvokeAsync("invokeSrv_Xml_Session", new object[] { method, inXMl }, invokeSrv_Xml_SessionOperationCompleted, userState);
}
private void OninvokeSrv_Xml_SessionOperationCompleted(object arg)
{
if (invokeSrv_Xml_SessionCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_Xml_SessionCompleted?.Invoke(this, new invokeSrv_Xml_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_DataTableParameter(string method, object[] parameters, ref DataTable pDataTable)
{
object[] results = Invoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable });
pDataTable = (DataTable)results[1];
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_DataTableParameter(string method, object[] parameters, DataTable pDataTable, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_DataTableParameter(IAsyncResult asyncResult, ref DataTable pDataTable)
{
object[] results = EndInvoke(asyncResult);
pDataTable = (DataTable)results[1];
return results[0];
}
/// <remarks/>
public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable)
{
invokeSrv_DataTableParameterAsync(method, parameters, pDataTable, null);
}
/// <remarks/>
public void invokeSrv_DataTableParameterAsync(string method, object[] parameters, DataTable pDataTable, object userState)
{
if (invokeSrv_DataTableParameterOperationCompleted == null)
{
invokeSrv_DataTableParameterOperationCompleted = OninvokeSrv_DataTableParameterOperationCompleted;
}
InvokeAsync("invokeSrv_DataTableParameter", new object[] { method, parameters, pDataTable }, invokeSrv_DataTableParameterOperationCompleted, userState);
}
private void OninvokeSrv_DataTableParameterOperationCompleted(object arg)
{
if (invokeSrv_DataTableParameterCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_DataTableParameterCompleted?.Invoke(this, new invokeSrv_DataTableParameterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataTable", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_DataTable(string method, string InXml, ref DataTable pDataTable)
{
object[] results = Invoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable });
pDataTable = (DataTable)results[1];
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_DataTable(string method, string InXml, DataTable pDataTable, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_DataTable(IAsyncResult asyncResult, ref DataTable pDataTable)
{
object[] results = EndInvoke(asyncResult);
pDataTable = (DataTable)results[1];
return results[0];
}
/// <remarks/>
public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable)
{
invokeSrv_DataTableAsync(method, InXml, pDataTable, null);
}
/// <remarks/>
public void invokeSrv_DataTableAsync(string method, string InXml, DataTable pDataTable, object userState)
{
if (invokeSrv_DataTableOperationCompleted == null)
{
invokeSrv_DataTableOperationCompleted = OninvokeSrv_DataTableOperationCompleted;
}
InvokeAsync("invokeSrv_DataTable", new object[] { method, InXml, pDataTable }, invokeSrv_DataTableOperationCompleted, userState);
}
private void OninvokeSrv_DataTableOperationCompleted(object arg)
{
if (invokeSrv_DataTableCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_DataTableCompleted?.Invoke(this, new invokeSrv_DataTableCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_DataSet", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_DataSet(string method, string InXml, ref DataSet pDataSet)
{
object[] results = Invoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet });
pDataSet = (DataSet)results[1];
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_DataSet(string method, string InXml, DataSet pDataSet, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_DataSet(IAsyncResult asyncResult, ref DataSet pDataSet)
{
object[] results = EndInvoke(asyncResult);
pDataSet = (DataSet)results[1];
return results[0];
}
/// <remarks/>
public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet)
{
invokeSrv_DataSetAsync(method, InXml, pDataSet, null);
}
/// <remarks/>
public void invokeSrv_DataSetAsync(string method, string InXml, DataSet pDataSet, object userState)
{
if (invokeSrv_DataSetOperationCompleted == null)
{
invokeSrv_DataSetOperationCompleted = OninvokeSrv_DataSetOperationCompleted;
}
InvokeAsync("invokeSrv_DataSet", new object[] { method, InXml, pDataSet }, invokeSrv_DataSetOperationCompleted, userState);
}
private void OninvokeSrv_DataSetOperationCompleted(object arg)
{
if (invokeSrv_DataSetCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_DataSetCompleted?.Invoke(this, new invokeSrv_DataSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/invokeSrv_Session", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public object invokeSrv_Session(string method, object[] parameters)
{
object[] results = Invoke("invokeSrv_Session", new object[] { method, parameters });
return results[0];
}
/// <remarks/>
public IAsyncResult BegininvokeSrv_Session(string method, object[] parameters, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv_Session", new object[] { method, parameters }, callback, asyncState);
}
/// <remarks/>
public object EndinvokeSrv_Session(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return results[0];
}
/// <remarks/>
public void invokeSrv_SessionAsync(string method, object[] parameters)
{
invokeSrv_SessionAsync(method, parameters, null);
}
/// <remarks/>
public void invokeSrv_SessionAsync(string method, object[] parameters, object userState)
{
if (invokeSrv_SessionOperationCompleted == null)
{
invokeSrv_SessionOperationCompleted = OninvokeSrv_SessionOperationCompleted;
}
InvokeAsync("invokeSrv_Session", new object[] { method, parameters }, invokeSrv_SessionOperationCompleted, userState);
}
private void OninvokeSrv_SessionOperationCompleted(object arg)
{
if (invokeSrv_SessionCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrv_SessionCompleted?.Invoke(this, new invokeSrv_SessionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("http://www.imestech.com/wsInvoke/Test", RequestNamespace = "http://www.imestech.com/wsInvoke", ResponseNamespace = "http://www.imestech.com/wsInvoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string Test(string UserNo)
{
object[] results = Invoke("Test", new object[] { UserNo });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BeginTest(string UserNo, AsyncCallback callback, object asyncState)
{
return BeginInvoke("Test", new object[] { UserNo }, callback, asyncState);
}
/// <remarks/>
public string EndTest(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void TestAsync(string UserNo)
{
TestAsync(UserNo, null);
}
/// <remarks/>
public void TestAsync(string UserNo, object userState)
{
if (TestOperationCompleted == null)
{
TestOperationCompleted = OnTestOperationCompleted;
}
InvokeAsync("Test", new object[] { UserNo }, TestOperationCompleted, userState);
}
private void OnTestOperationCompleted(object arg)
{
if (TestCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
TestCompleted?.Invoke(this, new TestCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState)
{
base.CancelAsync(userState);
}
private bool IsLocalFileSystemWebService(string url)
{
if (url == null || ReferenceEquals(url, string.Empty))
{
return false;
}
var wsUri = new Uri(url);
if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0)
{
return true;
}
return false;
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_XmlCompletedEventHandler(object sender, invokeSrv_XmlCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_XmlCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_XmlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_Xml_SessionCompletedEventHandler(object sender, invokeSrv_Xml_SessionCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_Xml_SessionCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_Xml_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_DataTableParameterCompletedEventHandler(object sender, invokeSrv_DataTableParameterCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_DataTableParameterCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_DataTableParameterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
/// <remarks/>
public DataTable pDataTable
{
get
{
RaiseExceptionIfNecessary();
return (DataTable)results[1];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_DataTableCompletedEventHandler(object sender, invokeSrv_DataTableCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_DataTableCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_DataTableCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
/// <remarks/>
public DataTable pDataTable
{
get
{
RaiseExceptionIfNecessary();
return (DataTable)results[1];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_DataSetCompletedEventHandler(object sender, invokeSrv_DataSetCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_DataSetCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_DataSetCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
/// <remarks/>
public DataSet pDataSet
{
get
{
RaiseExceptionIfNecessary();
return (DataSet)results[1];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrv_SessionCompletedEventHandler(object sender, invokeSrv_SessionCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrv_SessionCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrv_SessionCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public object Result
{
get
{
RaiseExceptionIfNecessary();
return results[0];
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void TestCompletedEventHandler(object sender, TestCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class TestCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal TestCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost/MESws_Industry/wsInvoke.asmx?wsdl" filename="wsInvoke.wsdl" />
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost/MESws_Industry/wsInvoke.asmx?disco" filename="wsInvoke.disco" />
</Results>
</DiscoveryClientResultsFile>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost/MESws_Industry/wsInvoke.asmx?wsdl" docRef="http://localhost/MESws_Industry/wsInvoke.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost/MESws_Industry/wsInvoke.asmx" xmlns:q1="http://www.imestech.com/wsInvoke" binding="q1:wsInvokeSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://localhost/MESws_Industry/wsInvoke.asmx" xmlns:q2="http://www.imestech.com/wsInvoke" binding="q2:wsInvokeSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>

View File

@ -0,0 +1,427 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.imestech.com/wsInvoke" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://www.imestech.com/wsInvoke" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.imestech.com/wsInvoke">
<s:element name="invokeSrv">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfAnyType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" />
</s:sequence>
</s:complexType>
<s:element name="invokeSrvResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrvResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="inXMl" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_XmlResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_XmlResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml_Session">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="inXMl" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml_SessionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_Xml_SessionResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableParameter">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableParameterResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataTableParameterResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTable">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataTableResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataSet">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataSetResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataSetResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_SessionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_SessionResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Test">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserNo" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="invokeSrvSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv" />
</wsdl:message>
<wsdl:message name="invokeSrvSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrvResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_XmlSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml" />
</wsdl:message>
<wsdl:message name="invokeSrv_XmlSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_XmlResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_Xml_SessionSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml_Session" />
</wsdl:message>
<wsdl:message name="invokeSrv_Xml_SessionSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml_SessionResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableParameterSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableParameter" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableParameterSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableParameterResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTable" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataSetSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataSet" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataSetSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataSetResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_SessionSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Session" />
</wsdl:message>
<wsdl:message name="invokeSrv_SessionSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_SessionResponse" />
</wsdl:message>
<wsdl:message name="TestSoapIn">
<wsdl:part name="parameters" element="tns:Test" />
</wsdl:message>
<wsdl:message name="TestSoapOut">
<wsdl:part name="parameters" element="tns:TestResponse" />
</wsdl:message>
<wsdl:portType name="wsInvokeSoap">
<wsdl:operation name="invokeSrv">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with objects and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrvSoapIn" />
<wsdl:output message="tns:invokeSrvSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with Xml String and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_XmlSoapIn" />
<wsdl:output message="tns:invokeSrv_XmlSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke with Xml String and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_Xml_SessionSoapIn" />
<wsdl:output message="tns:invokeSrv_Xml_SessionSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataTable and Object Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataTableParameterSoapIn" />
<wsdl:output message="tns:invokeSrv_DataTableParameterSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataTable and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataTableSoapIn" />
<wsdl:output message="tns:invokeSrv_DataTableSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataSet and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataSetSoapIn" />
<wsdl:output message="tns:invokeSrv_DataSetSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_SessionSoapIn" />
<wsdl:output message="tns:invokeSrv_SessionSoapOut" />
</wsdl:operation>
<wsdl:operation name="Test">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Web service and database connection test</wsdl:documentation>
<wsdl:input message="tns:TestSoapIn" />
<wsdl:output message="tns:TestSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="wsInvokeSoap" type="tns:wsInvokeSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="invokeSrv">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTable" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataSet" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Test">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/Test" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="wsInvokeSoap12" type="tns:wsInvokeSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="invokeSrv">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTable" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataSet" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Test">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/Test" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="wsInvoke">
<wsdl:port name="wsInvokeSoap" binding="tns:wsInvokeSoap">
<soap:address location="http://localhost/MESws_Industry/wsInvoke.asmx" />
</wsdl:port>
<wsdl:port name="wsInvokeSoap12" binding="tns:wsInvokeSoap12">
<soap12:address location="http://localhost/MESws_Industry/wsInvoke.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AutoLoaderLib_Base.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<system.diagnostics>
<sources>
<!-- 這個區段定義 My.Application.Log 的記錄組態-->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- 取消註解下列區段,以寫入應用程式事件記錄檔-->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- 取消註解下列區段,並將 APPLICATION_NAME 取代成您的應用程式名稱,以寫入至應用程式事件記錄檔-->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<applicationSettings>
<AutoLoaderLib_Base.My.MySettings>
<setting name="AutoLoaderLib_wsInvoke_wsInvoke" serializeAs="String">
<value>http://localhost/MESws_Industry/wsInvoke.asmx</value>
</setting>
</AutoLoaderLib_Base.My.MySettings>
</applicationSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/></startup></configuration>

View File

@ -0,0 +1,356 @@
using System;
using System.Collections;
using System.Data;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using Microsoft.VisualBasic.FileIO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using iMESCore.Settings;
using static iMESCore.DataBase.iMESSql;
using static iMESCore.Base.iMESConst;
using System.Data.Common;
namespace AutoLoaderLib_C
{
public class clsAutoLoaderLibrary
{
//private System.Data.OleDb.OleDbCommand cmmTemp;
private string strConnectionString; // Connection string
private string strReportConnectionString; // Report DB Connection string
private string strDataBaseType; // DataBase Type:oracle, mysql, access
private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ
private AppSettings objSetting = new AppSettings();
private string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema;
// //Initial Object--------------------------------------------------------------------------------------------------------------------------------
public clsAutoLoaderLibrary()
{
// //Get database type
strDataBaseType = objSetting.GetDataBaseType();
// //Get connection string
strConnectionString = objSetting.GetConnectionString(strDataBaseType);
// //Get Message Queue Type
strMQType = objSetting.GetMQType();
// //Get connection string
strReportConnectionString = objSetting.GetReportConnectionString(strDataBaseType);
// //GetMESWebSer
modWIN.gMESWebServiceHost = objSetting["MESWebServiceHost"].ToString();
}
// //Property--------------------------------------------------------------------------------------------------------------------------------
public string ConnectionString
{
get
{
return strConnectionString;
}
}
public string DataBaseType
{
get
{
return strDataBaseType;
}
}
public string MQType
{
get
{
return strMQType;
}
}
// //Public function----------------------------------------------------------------------------------------------------
public string ExecuteFunction(string FunctionName, Collection colParameters = null)
{
string ExecuteFunctionRet = default(string);
// 此 Function 將執行傳入之FunctionName
// 傳入值: FunctionName,colParameters
// 傳回值: DataSet(成功), nothing(失敗)
// colParameters的資料範例如下
// colParameters.Add("C1", "CustomerNo")
// colParameters.Add("P1", "ProductNo")
int i;
try
{
// 1.處理 FunctionName 大小寫問題
System.Reflection.MethodInfo[] MyMethodInfos = GetType().GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 取出Private的Function
var loopTo = MyMethodInfos.Length - 1;
for (i = 0; i <= loopTo; i++)
{
if ((MyMethodInfos[i].Name.ToUpper() ?? "") == (FunctionName.ToUpper() ?? ""))
{
FunctionName = MyMethodInfos[i].Name;
break;
}
}
// 2.執行Private Function,傳出DataSet
object objArgs = new object[] { colParameters };
ExecuteFunctionRet = Conversions.ToString(GetType().InvokeMember(FunctionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.InvokeMethod, null, this, (object[])objArgs));
}
catch (Exception e1)
{
ExecuteFunctionRet = "fail";
throw new Exception("clsAutoLoaderLibrary.ExecuteFunction:" + "{" + FunctionName + "}" + e1.Message);
}
finally
{
}
return ExecuteFunctionRet;
}
#region ---AutoLoader function---
#endregion
#region ---AutoLoader Sample---
private string funWatchTest(Collection colParameters = null)
{
string funWatchTestRet = default(string);
string strJobNo = string.Empty; // JobNo
string strSourcePath = string.Empty; // 來源檔案路徑
string strDestinationPath = string.Empty; // 目前檔案路徑
string strQueuePath = string.Empty; // 處理中檔案路徑
string strFailPath = string.Empty; // 失敗檔案路徑
string FileName = string.Empty; // 處理中檔案
string DirName = DateTime.Now.ToString("yyyyMM"); // 分類目錄名稱
string strLotNo = string.Empty;
string strComponentNo = string.Empty;
bool blnMoveFile = true;
string strSQL = string.Empty;
try
{
// //取出colParameter傳入參數
strJobNo = colParameters["JobNo"].ToString().Trim();
strSourcePath = colParameters["SourcePath"].ToString().Trim();
strDestinationPath = colParameters["DestinationPath"].ToString().Trim();
strQueuePath = colParameters["QueuePath"].ToString().Trim();
strFailPath = colParameters["FailPath"].ToString().Trim();
// //取出來源目錄中*.csv檔案
string[] DirFiles = Directory.GetFiles(strSourcePath, "*.csv");
// //將檔案複製到Queue的目錄中
foreach (var currentFileName in DirFiles)
{
FileName = currentFileName;
// //檢查檔案存不存在,有可能被另一個執行緒先處理
if (File.Exists(FileName) == true)
{
// '//檔案已存在Queue必須先刪除
// If File.Exists(strQueuePath & Path.GetFileName(FileName)) = True Then
// File.Delete(strQueuePath & Path.GetFileName(FileName))
// End If
// //移動檔案Source至Queue
try
{
blnMoveFile = true;
File.Move(FileName, strQueuePath + Path.GetFileName(FileName));
}
catch (Exception ex)
{
blnMoveFile = false;
throw new Exception("此執行程序已中止,由另一執行程序處理中!!");
}
// //將檔案來源改為Queue
FileName = strQueuePath + Path.GetFileName(FileName);
// //開始執行解檔處理
using (var myReader = new TextFieldParser(FileName, Encoding.Default))
{
myReader.TextFieldType = FieldType.Delimited;
myReader.Delimiters = new string[] { "," };
// //建立Connection
var cnnTemp = CreateConnection(strConnectionString);
//System.Data.OleDb.OleDbCommand cmmTemp = null;
//System.Data.OleDb.OleDbDataAdapter daTemp = null;
DbDataReader drTemp = null;
var CollectionSQL = new Collection();
// //變數宣告區域
// //Try Catch
try
{
// //Parser檔案
while (!myReader.EndOfData)
{
}
// //執行SQL
ExecuteSQLNoneQuery_UPD(strDataBaseType, strConnectionString, CollectionSQL);
}
catch (Exception ex)
{
throw;
} // //直接將錯誤Throw出去
finally
{
// //釋放資源
CollectionSQL = null;
// //Close Connection
CloseConnection(cnnTemp);
}
}
// //目錄不存在時必須要先建立
if (Directory.Exists(strDestinationPath + DirName) == false)
{
Directory.CreateDirectory(strDestinationPath + DirName);
}
// //檔案已存在Destination必須先刪除
if (File.Exists(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName)) == true)
{
File.Delete(strDestinationPath + DirName + @"\" + Path.GetFileName(FileName));
}
// //移動檔案Queue至Destination
File.Move(FileName, strDestinationPath + DirName + @"\" + Path.GetFileName(FileName));
}
}
// //回傳Success
funWatchTestRet = "success";
}
catch (Exception ex)
{
// //檔案處理失敗時移動檔案Queue至Fail
if (!string.IsNullOrEmpty(FileName) && blnMoveFile == true)
{
// //目錄不存在時必須要先建立
if (Directory.Exists(strFailPath + DirName) == false)
{
Directory.CreateDirectory(strFailPath + DirName);
}
// //檔案已存在File必須先刪除
if (File.Exists(strFailPath + DirName + @"\" + Path.GetFileName(FileName)) == true)
{
File.Delete(strFailPath + DirName + @"\" + Path.GetFileName(FileName));
}
// //移動檔案Queue至Fail
try
{
File.Move(FileName, strFailPath + DirName + @"\" + Path.GetFileName(FileName));
}
catch (Exception ex1)
{
}
}
// //回傳錯誤原因
funWatchTestRet = CombineFailMsg("0000-999999", "[JobNo:" + strJobNo + "][FunctionNo:funWatchTest][FileName:" + FileName + "][LotNo:" + strLotNo + "][WaferNo:" + strComponentNo + "][" + ex.Message + ",StackTrace:" + ex.StackTrace + "][SQL:" + strSQL + "]");
}
finally
{
}
return funWatchTestRet;
}
#endregion
#region ---Error Log---
// //Function---------------------------------------------------------------------------------------------------------------------------------
public string AddErrorLog(string ServiceName, string UserID, string KeyField, string KeyValue, DateTime RecordDate = default(DateTime), string Description = defString, string ComputerName = defString)
{
string AddErrorLogRet = default(string);
// 此 Function 將新增一筆資料
// 傳入值: 各欄位新增值
// 傳回值: success(成功), fail(失敗)
string strSQLAddField = string.Empty;
string strSQLAddValue = string.Empty;
string strSQL = string.Empty;
if (RecordDate == defDateTime)
RecordDate = DateTime.Now;
try
{
strSQLAddField = "Insert into tblSysErrorLog (ServiceName, UserID, KeyField, KeyValue";
strSQLAddValue = " Values ('" + ChkSingleQuation(Strings.Left(ServiceName, 30)) + "','" + ChkSingleQuation(Strings.Left(UserID, 10)) + "','" + ChkSingleQuation(Strings.Left(KeyField, 999)) + "','" + ChkSingleQuation(Strings.Left(KeyValue, 999)) + "'";
if ((Description ?? "") != defString)
{
strSQLAddField += ",Description";
strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(Description, 1999)) + "'";
}
if (RecordDate != defDateTime)
{
strSQLAddField += ",RecordDate";
strSQLAddValue += ", To_Date('" + Strings.Format(Conversions.ToDate(RecordDate), "yyyy/MM/dd H:mm:ss") + "','YYYY/MM/DD HH24:MI:SS')";
}
if ((ComputerName ?? "") != defString)
{
strSQLAddField += ",ComputerName";
strSQLAddValue += ",'" + ChkSingleQuation(Strings.Left(ComputerName, 50)) + "'";
}
// 直接給定strSQL
strSQL = strSQLAddField + ")" + strSQLAddValue + ")";
// //執行SQL指令
string argstrDatabaseType = Conversions.ToString(DataBaseType);
ExecuteSQLNoneQuery(argstrDatabaseType, strConnectionString, ref strSQL);
// //Return success
AddErrorLogRet = "success";
}
catch (Exception e1)
{
AddErrorLogRet = "fail";
// 發生錯誤時丟回本身的Function Name及系統錯誤訊息
// Throw 'New Exception("kcSYS.AddErrorLog: " & e1.Message)
}
return AddErrorLogRet;
}
private string CombineFailMsg(string ErrorCode, string Desc)
{
string CombineFailMsgRet = default(string);
CombineFailMsgRet = "ErrorCode:" + ErrorCode + ";" + Desc;
return CombineFailMsgRet;
}
#endregion
~clsAutoLoaderLibrary()
{
if (objSetting != null)
objSetting = null;
}
}
}

View File

@ -0,0 +1,939 @@
using System;
using System.Data;
using System.Runtime.InteropServices;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.Base.iMESConst;
using static iMESCore.Base.iMESComXML;
namespace AutoLoaderLib_C
{
static class modAutoLoaderLibrary
{
public enum GroupType
{
UserGroup = 0, // 使用者群組
IssueGroup = 1, // 簽核群組
EquipmentGroup = 2, // 設備工程師群組
InventoryGroup = 3, // 庫房工程師群組
ReportGroup = 4, // 報表使用群組
ERFDispositionGroup = 5, // 異常處理群組
ERFMailccGroup = 6 // 附件收件人群組
}
private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema;
#region
public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, DataRow rowRawData_SpecYield, string min_colFieldName, string max_colFieldName, DataRow rowRawData_SpecAvg, DataRow rowRawData_SpecEng, string colFieldName_IR = defString, bool blnGoodFlag_Yield = true, bool blnGoodFlag_Avg = true, bool blnGoodFlag_AOI = true)
{
bool funCalculateMinMaxSumSqrRet = default(bool);
// //符合規格的顆數(AVG)
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecAvg[max_colFieldName], false)))
{
switch (Strings.Mid(colFieldName, 1, 3).ToUpper() ?? "")
{
case "ESD": // 計算ESD的Yield時IR必須也要是Pass
{
if ((colFieldName_IR ?? "") != defString)
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecAvg[max_colFieldName], false)))
{
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //IR必須要過ESD才能算
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false)))
{
// //Yield Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
// Else
// blnGoodFlag_Yield = False
}
// //不包含AOIBin欄位判斷Yield
if (colFieldName.ToString().ToUpper() != "AOIBIN")
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_AOI = false;
}
}
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_Yield = false;
}
// '計算IR符合ESD規格的顆數
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false)))
{
rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1;
}
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(rowRawData[colFieldName].ToString());
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Avg Die數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
// //更新
rowReslut.EndEdit();
// //
funCalculateMinMaxSumSqrRet = true; // //此電性在規格內
}
else
{
// '計算IR符合ESD規格的顆數
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false)))
{
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1;
// Else
// blnGoodFlag_Yield = False
}
// //不包含AOIBin欄位判斷Yield
if (colFieldName.ToString().ToUpper() != "AOIBIN")
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_AOI = false;
}
}
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_Yield = false;
}
funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外
blnGoodFlag_Avg = false;
}
}
else
{
throw new Exception("無法取得檔案中" + colFieldName_IR + "所對應的電性欄位!!");
}
break;
}
default:
{
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false)))
{
// //Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
// Else
// blnGoodFlag_Yield = False
}
// //不包含AOIBin欄位判斷Yield
if (colFieldName.ToString().ToUpper() != "AOIBIN")
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_AOI = false;
}
}
// //
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_Yield = false;
}
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Avg Die數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
// //更新
rowReslut.EndEdit();
// //
funCalculateMinMaxSumSqrRet = true; // //此電性在規格內
break;
}
}
}
else
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecEng[max_colFieldName], false)))
{
// //Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
// Else
// blnGoodFlag_Yield = False
}
// //不包含AOIBin欄位判斷Yield
if (colFieldName.ToString().ToUpper() != "AOIBIN")
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_AOI = false;
}
}
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_SpecYield[max_colFieldName], false)))
{
}
else
{
blnGoodFlag_Yield = false;
}
// '計算IR符合ESD規格的顆數
if (Strings.Mid(colFieldName, 1, 3).ToUpper() == "ESD" && Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName_IR])), rowRawData_SpecEng[max_colFieldName], false)))
{
rowReslut["IRFitESDSpecQty"] = Convert.ToInt32(rowReslut["IRFitESDSpecQty"]) + 1;
}
funCalculateMinMaxSumSqrRet = false; // //回傳此電性在規格外
blnGoodFlag_Avg = false;
}
return funCalculateMinMaxSumSqrRet;
// End If
}
public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut, bool blnChkSpecFlag, DataRow rowRawData_Spec = null, DataRow rowRawData_Spec_AVG = null, string min_colFieldName = defString, string max_colFieldName = defString)
{
bool funCalculateMinMaxSumSqrRet = default(bool);
// //依傳入值判斷是否要判規格
if (blnChkSpecFlag == true)
{
// //不可為Nothing
if (rowRawData_Spec == null)
{
throw new Exception("必須傳入規格定義資料(YIELD)!!");
}
// //不可為Nothing
if (rowRawData_Spec_AVG == null)
{
throw new Exception("必須傳入規格定義資料(AVG)!!");
}
// //不可為defString
if ((max_colFieldName ?? "") == defString)
{
throw new Exception("必須傳入規格電性最大欄位定義資料!!");
}
// //不可為defString
if ((min_colFieldName ?? "") == defString)
{
throw new Exception("必須傳入規格電性最小欄位定義資料!!");
}
}
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //依傳入值判斷是否要判規格
if (blnChkSpecFlag == true)
{
// //規格最大、最小都為零時不需要判(AVG)
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec_AVG[max_colFieldName], 0, false)))
{
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
}
// //符合規格的顆數(良品數)
else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec_AVG[max_colFieldName], false)))
{
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
}
// //規格最大、最小都為零時不需要判(YIELD)
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false)))
{
// //Pass數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
funCalculateMinMaxSumSqrRet = true; // //此電性不需判斷規格(是)
}
// //符合規格的顆數(良品數)
else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false)))
{
// //Pass數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是)
}
else
{
funCalculateMinMaxSumSqrRet = false;
} // //回傳此電性是否在規格內(否)
}
else
{
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Pass數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
funCalculateMinMaxSumSqrRet = true;
} // //此電性不需判斷規格(是)
// //
rowReslut.EndEdit();
return funCalculateMinMaxSumSqrRet;
}
public static bool funCalculateMinMaxSumSqr(ref DataRow rowReslut, decimal valueQty, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName)
{
bool funCalculateMinMaxSumSqrRet = default(bool);
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], valueQty, false)))
{
rowReslut["MaxValue"] = valueQty;
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], valueQty, false)))
{
rowReslut["MinValue"] = valueQty;
}
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] + valueQty;
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)valueQty, 2d);
// //符合規格的顆數(良品數)
// //規格最大、最小都為零時不需要判,都算是Good
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false)))
{
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是)
}
else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(valueQty, rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(valueQty, rowRawData_Spec[max_colFieldName], false)))
{
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是)
}
else
{
funCalculateMinMaxSumSqrRet = false;
} // //回傳此電性是否在規格內(否)
// //更新
rowReslut.EndEdit();
return funCalculateMinMaxSumSqrRet;
}
public static bool funCalculateMinMaxSumSqr(DataRow rowRawData, string colFieldName, ref DataRow rowReslut)
{
bool funCalculateMinMaxSumSqrRet = default(bool);
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], 0, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //更新
rowReslut.EndEdit();
// //Return
funCalculateMinMaxSumSqrRet = true;
return funCalculateMinMaxSumSqrRet;
}
// add by Lena, 2012/06/22
public static bool funCalculateMinMaxSumSqr(string colFieldName, DataRow rowRawData, ref DataRow rowReslut, DataRow rowRawData_Spec, string min_colFieldName, string max_colFieldName)
{
bool funCalculateMinMaxSumSqrRet = default(bool);
// '//符合規格的顆數(良品數)
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[min_colFieldName], false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectLessEqual(decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), rowRawData_Spec[max_colFieldName], false)))
{
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Yield Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
// //Avg Die數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
// //更新
rowReslut.EndEdit();
funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是)
}
// '//規格最大、最小都為零時不需要判,都算是Good
else if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[min_colFieldName], 0, false)) && Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowRawData_Spec[max_colFieldName], 0, false)))
{
// //更新
rowReslut.BeginEdit();
// //Max
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectLess(rowReslut["MaxValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MaxValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Min
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(rowReslut["MinValue"], -9999, false)) || Conversions.ToBoolean(Operators.ConditionalCompareObjectGreater(rowReslut["MinValue"], decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), false)))
{
rowReslut["MinValue"] = decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
}
// //Sum
rowReslut["SumValue"] = (decimal)rowReslut["SumValue"] +
decimal.Parse(Conversions.ToString(rowRawData[colFieldName]));
// //SumSqr
rowReslut["SqrValue"] = (double)rowReslut["SqrValue"] +
Math.Pow((double)decimal.Parse(Conversions.ToString(rowRawData[colFieldName])), 2d);
// //Yield Die數加一
rowReslut["GoodQty1"] = Convert.ToInt32(rowReslut["GoodQty1"]) + 1;
// //Avg Die數加一
rowReslut["GoodQty2"] = Convert.ToInt32(rowReslut["GoodQty2"]) + 1;
// //更新
rowReslut.EndEdit();
funCalculateMinMaxSumSqrRet = true; // //回傳此電性是否在規格內(是)
}
else
{
funCalculateMinMaxSumSqrRet = false;
} // //回傳此電性是否在規格內(否)
return funCalculateMinMaxSumSqrRet;
}
#endregion
#region --- Transaction Output ---
public static object OutputSQLNoneQuery(ref string strCommandText)
{
bool blnTransactionLog = false;
try
{
blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]);
}
catch (Exception ex)
{
blnTransactionLog = false;
}
if (blnTransactionLog == false)
return default(Object);
var tfc = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true);
string FileName = tfc.AddExtension("SQL");
string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log";
FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff"));
try
{
using (var sw = System.IO.File.AppendText(FileName))
{
sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " "));
sw.Flush();
}
}
catch (Exception ex)
{
try
{
using (var sw = System.IO.File.AppendText(ErrorLogFile))
{
sw.WriteLine(ex.Message + ex.StackTrace);
sw.Flush();
}
}
catch (Exception e1)
{
}
}
finally
{
System.IO.File.Delete(tfc.BasePath + ".tmp");
}
return default(Object);
}
// Public Function OutputSQLNoneQuery_UPD(ByRef CollectionSQL As Collection)
// Dim blnTransactionLog As Boolean = False
// Try
// blnTransactionLog = CType(System.Configuration.ConfigurationSettings.AppSettings("TransactionLog"), Boolean)
// Catch ex As Exception
// blnTransactionLog = False
// End Try
// If blnTransactionLog = False Then Exit Function
// Dim tfc As New System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings("OutputSQLPath"), True)
// Dim FileName As String = tfc.AddExtension("SQL")
// Dim ErrorLogFile As String = System.Configuration.ConfigurationSettings.AppSettings("ErrorLogPath") & Format(Now, "yyyyMMdd").ToString & "_Error.Log"
// FileName = FileName.Insert(FileName.LastIndexOf("\") + 1, "TX" & Now.ToString("yyyyMMddHHmmssfff"))
// Dim strCommandText As String = String.Empty
// Try
// Using sw As System.IO.StreamWriter = System.IO.File.AppendText(FileName)
// For Each strCommandText In CollectionSQL
// sw.WriteLine(strCommandText.Replace(vbCrLf, " "))
// Next strCommandText
// sw.Flush()
// End Using
// Catch ex As Exception
// Try
// Using sw As System.IO.StreamWriter = System.IO.File.AppendText(ErrorLogFile)
// sw.WriteLine(ex.Message & ex.StackTrace)
// sw.Flush()
// End Using
// Catch e1 As Exception
// End Try
// Finally
// System.IO.File.Delete(tfc.BasePath & ".tmp")
// End Try
// End Function
public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref string aBody, object DataType)
{
bool blnTransactionLog = false;
try
{
blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]);
}
catch (Exception ex)
{
blnTransactionLog = false;
}
if (blnTransactionLog == false)
return default(Object);
var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true);
var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true);
string FileName = tfc1.AddExtension("SQL");
string AttachFile = tfc2.AddExtension("TXT");
string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log";
FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff"));
AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName);
try
{
// //Output File
if (aBody != null)
{
string sFileSource = AttachFile;
if (System.IO.File.Exists(sFileSource))
{
try
{
System.IO.File.Delete(sFileSource);
using (var sw = System.IO.File.AppendText(sFileSource))
{
sw.WriteLine(aBody);
sw.Flush();
}
}
catch (System.IO.IOException ex)
{
}
}
else
{
using (var sw = System.IO.File.AppendText(sFileSource))
{
sw.WriteLine(aBody);
sw.Flush();
}
}
}
// //輸出格式 = SQL Command;DataType;FilePath
strCommandText += ";" + DataType.ToString() + ";" + AttachFile;
using (var sw = System.IO.File.AppendText(FileName))
{
sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " "));
sw.Flush();
}
}
catch (Exception ex)
{
try
{
using (var sw = System.IO.File.AppendText(ErrorLogFile))
{
sw.WriteLine(ex.Message + ex.StackTrace);
sw.Flush();
}
}
catch (Exception e1)
{
}
}
finally
{
System.IO.File.Delete(tfc1.BasePath + ".tmp");
System.IO.File.Delete(tfc2.BasePath + ".tmp");
}
return default(Object);
}
public static object OutputSQLNoneQuery_AttachFile(ref string strCommandText, ref string AttachName, ref byte[] aBody, object DataType)
{
bool blnTransactionLog = false;
try
{
blnTransactionLog = Conversions.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["TransactionLog"]);
}
catch (Exception ex)
{
blnTransactionLog = false;
}
if (blnTransactionLog == false)
return default(Object);
var tfc1 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["OutputSQLPath"], true);
var tfc2 = new System.CodeDom.Compiler.TempFileCollection(System.Configuration.ConfigurationSettings.AppSettings["AttachFilePath"], true);
string FileName = tfc1.AddExtension("SQL");
string AttachFile = tfc2.AddExtension(AttachName.Substring(AttachName.Length - 3, 3).ToUpper());
string ErrorLogFile = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"] + Strings.Format(DateTime.Now, "yyyyMMdd").ToString() + "_Error.Log";
FileName = FileName.Insert(FileName.LastIndexOf(@"\") + 1, "TX" + DateTime.Now.ToString("yyyyMMddHHmmssfff"));
AttachFile = AttachFile.Insert(AttachFile.LastIndexOf(@"\") + 1, AttachName.Substring(0, AttachName.Length - 4));
try
{
// //Output File
if (aBody != null)
{
string sFileSource = AttachFile;
if (System.IO.File.Exists(sFileSource))
{
try
{
System.IO.File.Delete(sFileSource);
var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
fs.Write(aBody, 0, aBody.Length);
fs.Close();
}
catch (System.IO.IOException ex)
{
}
}
else
{
var fs = new System.IO.FileStream(sFileSource, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
fs.Write(aBody, 0, aBody.Length);
fs.Close();
}
}
// //輸出格式 = SQL Command;DataType;FilePath
strCommandText += ";" + DataType.ToString() + ";" + AttachFile;
using (var sw = System.IO.File.AppendText(FileName))
{
sw.WriteLine(strCommandText.Replace(Constants.vbCrLf, " "));
sw.Flush();
}
}
catch (Exception ex)
{
try
{
using (var sw = System.IO.File.AppendText(ErrorLogFile))
{
sw.WriteLine(ex.Message + ex.StackTrace);
sw.Flush();
}
}
catch (Exception e1)
{
}
}
finally
{
System.IO.File.Delete(tfc1.BasePath + ".tmp");
System.IO.File.Delete(tfc2.BasePath + ".tmp");
}
return default(Object);
}
#endregion
#region Invoke
/// <summary>
/// 叫用Web Service, 並回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="Customize">是否客製的WebService</param>
/// <returns></returns>
public static string InvokeSrv(string Method, string InXml, bool Customize = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
result = ws.invokeSrv(Method, new object[] { InXml });
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
/// <summary>
/// 叫用Web Service, 回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="buffer">用來取回byte資料或傳入byte資料</param>
/// <param name="Customize">是否客製的WebService</param>
/// <returns></returns>
public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
result = ws.invokeSrv(Method, new object[] { InXml, buffer });
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
/// <summary>
/// 叫用Web Service, 並回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="pDataSet">接收結果的DataSet</param>
/// <param name="Customize">是否客製的WebService</param>
/// <returns></returns>
public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet);
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
#endregion
// 發Mail功能 非群組與群組發送
public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup)
{
string SendMultiEmailRet = default(string);
// GroupType
// 0:User Group (使用者群組)
// 1:Issue Group (簽核群組)
// 2:Equipment Group(設備工程師群組)
// 3:Inventory Group(庫房工程師群組)
// 4:Report Group(報表使用群組)
// 5:ERF Disposition Group(異常處理群組)
// 6:ERF Mail ccGroup(附件收件人群組)
try
{
strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString());
strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), "");
strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, "");
strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, "");
strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), "");
strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, "");
var XmlDoc = new System.Xml.XmlDocument();
InXml = modWIN.CombineXMLRequest(ref strIdentity, ref strParameter);
// OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile)
OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile);
XmlDoc.LoadXml(OutXml);
if (modWIN.chkExecutionSuccess(ref XmlDoc)) // 找出Exception訊並顯示出來
{
SendMultiEmailRet = "success";
}
else
{
SendMultiEmailRet = "fail";
}
XmlDoc = null;
}
catch (Exception ex)
{
SendMultiEmailRet = "fail;" + ex.Message;
}
return SendMultiEmailRet;
}
}
}

View File

@ -0,0 +1,492 @@
using System;
using System.Collections;
using static System.Configuration.ConfigurationSettings;
using System.Data;
using System.Runtime.InteropServices;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.Base.iMESConst;
namespace AutoLoaderLib_C
{
static class modWIN
{
// ReviseDate : 2003/08/07,修改處理AdditionalXML
// ReviseDate : 2003/08/05,新增Public gReturnArray
// ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput)
// ReviseDate : 2002/11/04,新增CUnInput function
public static string gComputerName;
public static string gReturnKeyValue;
public static string gUserNo;
public static string gUserName;
public static string gUserLevel;
public static string gLanguageMode;
public static string gAppPath;
// **Add for Smart Client Architecture
public static string gMESWebServiceHost;
public static string gCUSWebServiceHost;
// Add By Peter 2005/6/20
public static string gSettingMode = "";
public static DataRow drSearch;
public static ArrayList gReturnArray = new ArrayList();
public const string strAddTagLabel = "extrabase"; // Add by py for Combine Addition XML doc
public const string strAddTagName = "ExtraBase"; // Add by py for Combine Addition XML doc
public static bool chkExecutionSuccess(ref System.Xml.XmlDocument Xmldoc)
{
bool chkExecutionSuccessRet = default(bool);
if (Xmldoc.DocumentElement["result"].InnerXml == "success")
{
chkExecutionSuccessRet = true;
}
else
{
chkExecutionSuccessRet = false;
}
return chkExecutionSuccessRet;
}
public static string GetExceptionSysMsg(ref System.Xml.XmlDocument Xmldoc)
{
string GetExceptionSysMsgRet = default(string);
string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml;
GetExceptionSysMsgRet = CUnInput(ref argstrInput);
Xmldoc.DocumentElement.GetElementsByTagName("sysmsg").Item(0).InnerXml = argstrInput;
return GetExceptionSysMsgRet;
}
public static string GetExceptionMesMsg(ref System.Xml.XmlDocument Xmldoc)
{
string GetExceptionMesMsgRet = default(string);
string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml;
GetExceptionMesMsgRet = CUnInput(ref argstrInput);
Xmldoc.DocumentElement.GetElementsByTagName("mesmsg").Item(0).InnerXml = argstrInput;
return GetExceptionMesMsgRet;
}
public static string CombineXMLIdentity(ref string ComputerName, ref string CurUserNo, ref string SendTime)
{
string CombineXMLIdentityRet = default(string);
CombineXMLIdentityRet = "<computername>" + ComputerName + "</computername>" + "<curuserno>" + CurUserNo + "</curuserno>" + "<sendtime>" + SendTime + "</sendtime>";
return CombineXMLIdentityRet;
}
public static string CombineXMLParameter(ref string value_name, ref string name, ref string type, ref string value, ref string desc)
{
string CombineXMLParameterRet = default(string);
CombineXMLParameterRet = "<" + value_name.ToLower() + ">" + "<name>" + name + "</name>" + "<type>" + type + "</type>" + "<value>" + value + "</value>" + "<desc>" + desc + "</desc>" + "</" + value_name.ToLower() + ">";
return CombineXMLParameterRet;
}
public static string CombineXMLRequest(ref string strIdentity, ref string strParameter)
{
string CombineXMLRequestRet = default(string);
CombineXMLRequestRet = "<request>" + "<identity>" + strIdentity + "</identity>";
if (!string.IsNullOrEmpty(strParameter))
{
CombineXMLRequestRet = CombineXMLRequestRet + "<parameter>" + strParameter + "</parameter>";
}
CombineXMLRequestRet = CombineXMLRequestRet + "</request>";
return CombineXMLRequestRet;
}
public static string CombineXMLValue(ref string TagName, ref string Value)
{
string CombineXMLValueRet = default(string);
CombineXMLValueRet = "<" + TagName + ">" + Value + "</" + TagName + ">";
return CombineXMLValueRet;
}
public static string CombineXMLValueTag(ref string Value)
{
string CombineXMLValueTagRet = default(string);
CombineXMLValueTagRet = "<value>" + Value + "</value>";
return CombineXMLValueTagRet;
}
public static string CombineXMLParameterMultiValue(ref string value_name, ref string name, ref string type, ref string value, ref string desc)
{
string CombineXMLParameterMultiValueRet = default(string);
// Value不用加上Tag
CombineXMLParameterMultiValueRet = "<" + value_name.ToLower() + ">" + "<name>" + name + "</name>" + "<type>" + type + "</type>" + value + "<desc>" + desc + "</desc>" + "</" + value_name.ToLower() + ">";
return CombineXMLParameterMultiValueRet;
}
public static int FindRecordPosition(ref DataView dvData, ref string strColumnName, ref string strFindValue)
{
int FindRecordPositionRet = default(int);
// //由Dataview的第一筆開始尋找符合的資料直到最後一筆
// //傳出資料在資料表內的Index
int i;
bool Found; // //紀錄是否找到符合資料
string strDataType; // //尋找資料欄的資料型態
try
{
if (!string.IsNullOrEmpty(strFindValue)) // 是否有傳入尋找的條件
{
Found = false;
strDataType = dvData.Table.Columns[strColumnName].DataType.ToString();
if (strDataType == "System.DateTime") // 日期型態的資料比對
{
var loopTo = dvData.Count;
for (i = 0; i <= loopTo; i++)
{
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectGreaterEqual(dvData[i][strColumnName], "#" + Strings.Format(Conversions.ToDate(strFindValue), "yyyy/MM/dd") + "#", false)))
{
Found = true;
break;
}
}
}
else // 字串,數值資料型態的比對
{
var loopTo1 = dvData.Count;
for (i = 0; i <= loopTo1; i++)
{
if ((Strings.UCase(dvData[i][strColumnName].ToString()) ?? "") == (Strings.UCase(strFindValue) ?? ""))
{
Found = true;
break;
}
}
}
if (Found == true)
{
FindRecordPositionRet = i; // 找到符合資料傳出所在的RowIndex
}
else
{
FindRecordPositionRet = -1;
} // 沒有符合資料
}
}
catch
{
FindRecordPositionRet = -1;
} // 沒有符合資料
return FindRecordPositionRet;
// //使用Dataview的Find Method,日期無法使用
// dvData.Sort = strColumnName
// FindRecordPosition = dvData.Find(strFindValue)
}
public static string PasswordEncoding(ref string Password)
{
string PasswordEncodingRet = default(string);
// 此 Function 將傳入值加以編碼後傳出,編碼後長度不變
// 傳入值: 密碼
// 傳回值: 編碼後密碼
// Vernam密碼是由Gilbert Vernam在1918年發明的
string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN";
string strChar, iCryptChar, strEncrypted = default(string);
int i, iKeyChar, iStringChar;
var loopTo = Strings.Len(Password);
for (i = 1; i <= loopTo; i++)
{
iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1));
iStringChar = Strings.Asc(Strings.Mid(Password, i, 1));
iCryptChar = (iKeyChar ^ iStringChar).ToString();
strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar));
}
PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted));
return PasswordEncodingRet;
}
public static string FilterByString(ref string strFilter, ref string strColumnName, ref string strColumnValue)
{
string FilterByStringRet = default(string);
// 對字串欄位做篩選
if (string.IsNullOrEmpty(strFilter))
{
strFilter = strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'";
}
else
{
strFilter = strFilter + " And " + strColumnName + " = '" + Strings.Replace(strColumnValue, "'", "''") + "'";
}
FilterByStringRet = strFilter;
return FilterByStringRet;
}
public static string FilterByInteger(ref string strFilter, ref string strColumnName, ref int strColumnValue)
{
string FilterByIntegerRet = default(string);
// 對數值欄位做篩選
if (string.IsNullOrEmpty(strFilter))
{
strFilter = strColumnName + " = " + strColumnValue;
}
else
{
strFilter = strFilter + " And " + strColumnName + " = " + strColumnValue;
}
FilterByIntegerRet = strFilter;
return FilterByIntegerRet;
}
public static string FilterByDate(ref string strFilter, ref string strColumnName, ref DateTime datFromDate, ref DateTime datEndDate)
{
string FilterByDateRet = default(string);
// 對日期欄位做篩選
if (string.IsNullOrEmpty(strFilter))
{
strFilter = strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# ";
}
else
{
strFilter = strFilter + " And " + strColumnName + " >= #" + Strings.Format(Conversions.ToDate(datFromDate), "yyyy/MM/dd 00:00:00") + "# And " + strColumnName + " <= #" + Strings.Format(Conversions.ToDate(datEndDate), "yyyy/MM/dd 23:59:59") + "# ";
}
FilterByDateRet = strFilter;
return FilterByDateRet;
}
public static bool IsBoolean(ref string strBoolean, string strBooleanValue = defString)
{
bool IsBooleanRet = default(bool);
// 此 Function 檢查傳入值是否為Boolean值
// 傳入值: strBoolean欲檢查是否為Boolean值的字串
// strBooleanValue將檢查值轉換為True或False的統一字串
// 傳回值: True是Boolean值 ; False不是Boolean值
IsBooleanRet = false;
if (string.IsNullOrEmpty(strBoolean))
{
IsBooleanRet = false;
}
else if (Strings.Trim(Strings.UCase(strBoolean)) != "Y" & Strings.Trim(Strings.UCase(strBoolean)) != "N" & Strings.Trim(Strings.UCase(strBoolean)) != "T" & Strings.Trim(Strings.UCase(strBoolean)) != "F" & Strings.Trim(Strings.UCase(strBoolean)) != "YES" & Strings.Trim(Strings.UCase(strBoolean)) != "NO" & Strings.Trim(Strings.UCase(strBoolean)) != "TRUE" & Strings.Trim(Strings.UCase(strBoolean)) != "FALSE" & Strings.Trim(Strings.UCase(strBoolean)) != "是" & Strings.Trim(Strings.UCase(strBoolean)) != "否" & Strings.Trim(Strings.UCase(strBoolean)) != "ON" & Strings.Trim(Strings.UCase(strBoolean)) != "OFF")
{
IsBooleanRet = false;
}
else if (Strings.Trim(Strings.UCase(strBoolean)) == "Y" | Strings.Trim(Strings.UCase(strBoolean)) == "T" | Strings.Trim(Strings.UCase(strBoolean)) == "YES" | Strings.Trim(Strings.UCase(strBoolean)) == "TRUE" | Strings.Trim(Strings.UCase(strBoolean)) == "是" | Strings.Trim(Strings.UCase(strBoolean)) == "ON")
{
IsBooleanRet = true;
strBooleanValue = "True";
}
else
{
IsBooleanRet = true;
strBooleanValue = "False";
}
return IsBooleanRet;
}
public static string CInput(ref string strInput)
{
string CInputRet = default(string);
// 將傳入值內的單引號轉換為可存入資料庫的格式
// 2. 將傳入值內的 &, >, < 三個特殊字元轉換為XmlDocument可解譯之代替符號
// 傳入值: strInput包含特殊字元的字串
// 傳回值: 將特殊字元變更為代替符號的字串
// 轉換 ' 為 '' (單引號轉為兩個單引號)
CInputRet = Strings.Replace(strInput, "'", "''");
// 轉換 & 為 &amp;
CInputRet = Strings.Replace(CInputRet, "&", "&amp;");
// CInput = Replace(CInput, """", "''") 'AddFlow的Xml字串不可將雙引號轉為兩個單引號,XMLToFlow會Error
// 轉換 > 為 &gt;
CInputRet = Strings.Replace(CInputRet, ">", "&gt;");
// 轉換 < 為 &lt;
CInputRet = Strings.Replace(CInputRet, "<", "&lt;");
return CInputRet;
}
public static string CUnInput(ref string strInput)
{
string CUnInputRet = default(string);
// 將傳入值內的單引號轉換為可存入資料庫的格式
// 傳入值: strInput包含特殊字元的字串
// 傳回值: 將代替符號變更為特殊字元的字串
// 轉換 ' 為 '' (單引號轉為兩個單引號)
// CUnInput = Replace(strInput, "'", "''")
CUnInputRet = Strings.Replace(strInput, "\"", "'");
// 轉換 & 為 &amp;
CUnInputRet = Strings.Replace(CUnInputRet, "&amp;", "&");
// 轉換 > 為 &gt;
CUnInputRet = Strings.Replace(CUnInputRet, "&gt;", ">");
// 轉換 < 為 &lt;
CUnInputRet = Strings.Replace(CUnInputRet, "&lt;", "<");
return CUnInputRet;
}
// ***Add by PY 2003/07/31****
public static string CombineXMLAdditional(ref string strAdditional)
{
string CombineXMLAdditionalRet = default(string);
CombineXMLAdditionalRet = "<additional>" + strAdditional;
CombineXMLAdditionalRet = CombineXMLAdditionalRet + "</additional>";
return CombineXMLAdditionalRet;
}
public static string CombineAddXML_Add(ref string name, ref string type, ref string value)
{
string CombineAddXML_AddRet = default(string);
CombineAddXML_AddRet = "<field>" + "<name>" + name + "</name>" + "<type>" + type + "</type>" + "<value>" + value + "</value>" + "</field>";
return CombineAddXML_AddRet;
}
public static string CombineAddXML_Edit(ref string name, ref string type, ref string value)
{
string CombineAddXML_EditRet = default(string);
CombineAddXML_EditRet = "<field>" + "<name>" + name + "</name>" + "<type>" + type + "</type>" + "<value>" + value + "</value>" + "</field>";
return CombineAddXML_EditRet;
}
public static string CombineAddXML_Field(ref string name)
{
string CombineAddXML_FieldRet = default(string);
CombineAddXML_FieldRet = "<field>" + "<name>" + name + "</name>" + "</field>";
return CombineAddXML_FieldRet;
}
public static string CombineAddXML_Condition(string condition)
{
string CombineAddXML_ConditionRet = default(string);
CombineAddXML_ConditionRet = "<condition>" + Strings.Replace(condition, "''", "'") + "</condition>";
return CombineAddXML_ConditionRet;
}
// **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換
public static string LocalizeWebService(string wsUrl, bool Customize = false)
{
string[] tmpString;
int i;
tmpString = wsUrl.Split('/');
if (Customize == true)
{
if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost)))
{
if (tmpString.Length == 6)
{
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString();
}
else if (tmpString.Length == 5)
{
wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString();
}
}
}
else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost)))
{
if (tmpString.Length == 6)
{
// wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString();
}
else if (tmpString.Length == 5)
{
// wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 1).ToString
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString();
}
}
return wsUrl;
// Have to assume the web service is on the machine that this application came from
} // LocalizeWebService
// Add By Peter 2005/6/20
public static string GetAppSettings(string key, string section = "")
{
string result = string.Empty;
try
{
if (!string.IsNullOrEmpty(section))
{
result = Conversions.ToString(((Hashtable)GetConfig(section))[key]);
}
else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0)
{
result = AppSettings[key];
}
else
{
Hashtable ht = (Hashtable)GetConfig(gSettingMode);
if (ht != null)
{
result = Conversions.ToString(ht[key]);
}
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
public static string GetExceptionStack(ref System.Xml.XmlDocument Xmldoc)
{
string GetExceptionStackRet = default(string);
if (Xmldoc.DocumentElement.GetElementsByTagName("stack").Count > 0)
{
string argstrInput = Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml;
GetExceptionStackRet = CUnInput(ref argstrInput);
Xmldoc.DocumentElement.GetElementsByTagName("stack").Item(0).InnerXml = argstrInput;
}
else
{
GetExceptionStackRet = "";
}
return GetExceptionStackRet;
}
}
}

View File

@ -0,0 +1,30 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 一般的組件資訊是由下列這組屬性所控制。
// 變更這些屬性的值即可修改組件的相關資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("AutoRunLib")]
[assembly: AssemblyDescription("AutoRunLib for MESSeries")]
[assembly: AssemblyCompany("iMES Technology Inc.")]
[assembly: AssemblyProduct("MESSeries 6")]
[assembly: AssemblyCopyright("Copyright © iMES Technology Inc.")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(true)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("C4620590-2AB6-4D4D-8D66-A8D689DA698C")]
// 組件的版本資訊由下列四個值所組成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂
//
// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號
// 指定為預設值:
[assembly: AssemblyVersion("6.0.0.0")]

View File

@ -0,0 +1,453 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}</ProjectGuid>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>AutoRunLib_C</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyMode>None</AssemblyOriginatorKeyMode>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>Library</OutputType>
<OptionCompare>Binary</OptionCompare>
<OptionExplicit>On</OptionExplicit>
<OptionStrict>Off</OptionStrict>
<RootNamespace>AutoRunLib_C</RootNamespace>
<StartupObject>
</StartupObject>
<WebReference_EnableProperties>true</WebReference_EnableProperties>
<WebReference_EnableSQLTypes>false</WebReference_EnableSQLTypes>
<WebReference_EnableLegacyEventingModel>true</WebReference_EnableLegacyEventingModel>
<FileUpgradeFlags>
</FileUpgradeFlags>
<MyType>Windows</MyType>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SignAssembly>false</SignAssembly>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<OldToolsVersion>2.0</OldToolsVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>..\..\..\MES_C_DLL\</OutputPath>
<DocumentationFile>..\..\..\MES_C_DLL\AutoRunLib_C.xml</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>..\..\..\MES_C_DLL\</OutputPath>
<DocumentationFile>..\..\..\MES_C_DLL\
</DocumentationFile>
<BaseAddress>285212672</BaseAddress>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>
</DefineConstants>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>none</DebugType>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\..\MES_C_DLL\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<BaseAddress>285212672</BaseAddress>
<Optimize>true</Optimize>
<WarningLevel>0</WarningLevel>
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisLogFile>..\..\..\MES_C_DLL\AutoRunLib.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="data_access_service">
<HintPath>..\..\..\MES_S_DLL\data_access_service.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESAppSetting">
<HintPath>..\..\..\MES_S_DLL\iMESAppSetting.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESComSubroutine">
<HintPath>..\..\..\MES_S_DLL\iMESComSubroutine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESComXML">
<HintPath>..\..\..\MES_S_DLL\iMESComXML.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESConst">
<HintPath>..\..\..\MES_S_DLL\iMESConst.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="GuardServerProvider">
<HintPath>..\..\..\MES_S_DLL\GuardServerProvider.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Win.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Win.UltraWinGrid.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Win.UltraWinGrid.ExcelExport.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinGrid.ExcelExport.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Win.UltraWinEditors.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.UltraWinEditors.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Win.Misc.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Win.Misc.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Shared.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Shared.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Documents.Excel.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Excel.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Infragistics4.Documents.Core.v19.1, Version=19.1.20191.294, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Infragistics\2019.1\Windows Forms\CLR4.0\Bin\Infragistics4.Documents.Core.v19.1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESCIO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\iMESCIO.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESDAO">
<HintPath>..\..\..\MES_S_DLL\iMESDAO.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESDataObject">
<HintPath>..\..\..\MES_S_DLL\iMESDataObject.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESProjectBase">
<HintPath>..\..\..\MES_S_DLL\iMESProjectBase.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESUltraGrid, Version=4.20.0.30415, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_C_DLL\iMESUltraGrid.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.configuration" />
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Deployment" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.Services">
<Name>System.Web.Services</Name>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="COM_ERP.clsCommon" />
<Import Include="COM_ERP.clsWorkFlow" />
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="EAIMessageSynchronizer.cs" />
<Compile Include="Web References\wsERP_WorkFlow\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<Compile Include="Web References\wsInvoke\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<None Include="app.config" />
<None Include="My Project\Settings.settings">
<CustomToolNamespace>AutoRunLib_C.My</CustomToolNamespace>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_EAI\IntegrationEntry.wsdl" />
<None Include="Web References\wsERP_EAI\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_MES\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_MES\wsMES.wsdl" />
<None Include="Web References\wsERP_TP\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_TP\TIPTOPServiceGateWay.wsdl" />
<None Include="Web References\wsERP_TP_RPC\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_TP_RPC\TIPTOPServiceGateWay.wsdl" />
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="clsAutoRunLibrary.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="modAutoRunLibrary.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="modWIN.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="Web References\wsERP_EAI\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<Compile Include="Web References\wsERP_MES\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<Compile Include="Web References\wsERP_TP\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<Compile Include="Web References\wsERP_TP_RPC\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<None Include="Web References\wsERP_WorkFlow\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsERP_WorkFlow\WFMESService.wsdl" />
<None Include="Web References\wsInvoke\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\wsInvoke\wsInvoke.wsdl" />
<WebReferenceUrl Include="http://10.40.30.73/WFMES/WFMESService.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsERP_WorkFlow\</RelPath>
<UpdateFromURL>http://10.40.30.73/WFMES/WFMESService.asmx</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsERP_WorkFlow_WFMESService</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferenceUrl Include="http://218.211.164.199:9999/IntegrationEntry%3fwsdl">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsERP_EAI\</RelPath>
<UpdateFromURL>http://218.211.164.199:9999/IntegrationEntry%3fwsdl</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsERP_EAI_IntegrationEntry</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferenceUrl Include="http://localhost/ERPws_DSC/TIPTOPServiceGateWay.wsdl">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsERP_TP\</RelPath>
<UpdateFromURL>http://localhost/ERPws_DSC/TIPTOPServiceGateWay.wsdl</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsERP_TP_TIPTOPServiceGateWay</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferenceUrl Include="http://localhost/ERPws_DSC/TIPTOPServiceGateWay_RPC.wsdl">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsERP_TP_RPC\</RelPath>
<UpdateFromURL>http://localhost/ERPws_DSC/TIPTOPServiceGateWay_RPC.wsdl</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferenceUrl Include="http://localhost/ERPws_DSC/wsMES.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsERP_MES\</RelPath>
<UpdateFromURL>http://localhost/ERPws_DSC/wsMES.asmx</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsERP_MES_wsMES</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferences Include="Web References\" />
<WebReferenceUrl Include="http://localhost/MESws_STD/wsInvoke.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\wsInvoke\</RelPath>
<UpdateFromURL>http://localhost/MESws_STD/wsInvoke.asmx</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>MySettings</CachedAppSettingsObjectName>
<CachedSettingsPropName>AutoRunLib_wsInvoke_wsInvoke</CachedSettingsPropName>
</WebReferenceUrl>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None Include="Web References\wsERP_MES\wsMES.disco" />
</ItemGroup>
<ItemGroup>
<None Include="Web References\wsInvoke\wsInvoke.disco" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<None Include="Web References\wsERP_WorkFlow\WFMESService.disco" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Import Project="..\..\..\MESWin\shared file\MakeVersion_CS.targets" Condition="exists('..\..\..\MESWin\shared file\MakeVersion_CS.targets')" />
</Project>

View File

@ -0,0 +1,633 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using iMESCIO.CDO.Tables;
using iMESCIO.SCI.DPM.Request;
using iMESCIO.SCI.DPM.Response;
using iMESCIO.SCI.ERP.Request;
using iMESCIO.SCI.ERP.Response;
using iMESCIO.SCI.SMES.Request;
using iMESCIO.SCI.SMES.Response;
using iMESCore.Base.ProjectBase.Base;
using iMESCore.Settings;
using MESDAO.Tables;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.DataBase.iMESSql;
using static iMESCore.Base.iMESComSubroutine;
namespace AutoRunLib_C
{
public class EAIMessageSynchronizer
{
public enum WorkCode
{
ContinueRun = 0, // 繼續執行作業
StopSame = 1, // 停止相同的作業
StopAll = 2 // 停止所有作業
}
private string strDataBaseType; // DataBase Type:oracle, mysql, access
private string strConnectionString; // Connection string
private string strReportDataBaseType;
private string strReportConnectionString; // Report DB Connection string
private string strERPconnectionString;
private string strERPDataBaseType;
private string strERPReportConnectionString;
private string InXML, OutXML;
private string RequestKey = "";
private AppSettings objSetting = new AppSettings();
private string strLanguageMode = "zh-cht";
private string strResourceDir = "Resources";
// //Initial Object--------------------------------------------------------------------------------------------------------------------------------
public EAIMessageSynchronizer()
{
// //Get database type
strDataBaseType = objSetting.GetDataBaseType();
// //Get connection string
strConnectionString = objSetting.GetConnectionString(strDataBaseType);
// //Get Message Queue Type
// strMQType = objSetting.GetMQType()
strReportDataBaseType = objSetting.GetReportDataBaseType();
// //Get connection string
strReportConnectionString = objSetting.GetReportConnectionString(strReportDataBaseType);
// ERP
// //Get ERP database type
strERPDataBaseType = objSetting.GetDataBaseType_ERP();
// //Get ERP connection string
strERPconnectionString = objSetting.GetConnectionString_ERP(strERPDataBaseType);
try
{
strResourceDir = objSetting["ResourceDir"].ToString();
}
catch (Exception)
{ }
try
{
strLanguageMode = objSetting["LanguageMode"].ToString();
}
catch (Exception)
{
}
// 'T100 整合項目增加, 取得 Web.Config 設定項目, 2015/12/15 Add.
// Try
// '從Web.config取出目前的DatabaseType
// strERPCreator = System.Configuration.ConfigurationSettings.AppSettings.Get("defCreator")
// '2016-03-09, Joe, 取出預設ERP單位屬性編號
// strERPUnitNo = System.Configuration.ConfigurationSettings.AppSettings.Get("defERPUnitNoProperty")
// '2016-03-02, Joe, 取出預設語系並轉換成ERP對應語系後續T100多語系資料需用到
// strDefLanguage = System.Configuration.ConfigurationSettings.AppSettings.Get("LanguageMode")
// Select Case strDefLanguage.ToUpper
// Case "ZH-CHS"
// strLanguage_T100 = "zh_CN"
// Case "EN"
// strLanguage_T100 = "en_US"
// Case Else
// strLanguage_T100 = "zh_TW"
// End Select
// Catch ex As Exception
// '發生錯誤時丟回本身的Function Name及系統錯誤訊息
// End Try
}
// //Property--------------------------------------------------------------------------------------------------------------------------------
public string ConnectionString
{
get
{
return strConnectionString;
}
}
public string DataBaseType
{
get
{
return strDataBaseType;
}
}
public void StartSyncing(Collection colParameters = null)
{
var StopRunList = new List<string>();
var objERPSetting = new List<CDO_TBLSYSERPSETTING>();
var objQueue = new List<CDO_TBLSYSSENDTOEAIQUEUE>();
string Parameter01, Parameter02;
WorkCode ReturnWorkCode;
bool bSendMail = false;
do
{
try
{
// Parameter01為參數一
// 作為Mail通知群組(GroupNo),放在最前面防止連線失敗無法寄送通知。
if (!(colParameters["Parameter01"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter01"]))))
{
Parameter01 = colParameters["Parameter01"].ToString().Trim();
}
else
{
throw new Exception(TranslateMsg("Mail GroupNo (Parameter 01) [%NOT SET%]!", strLanguageMode, strResourceDir));
}
// Parameter02為參數二
// 重新拋轉上限(數值)
if (!(colParameters["Parameter02"] == null) & !string.IsNullOrEmpty(Strings.Trim(Conversions.ToString(colParameters["Parameter02"]))))
{
if (Information.IsNumeric(colParameters["Parameter02"]) == false)
{
throw new Exception("(Parameter 02) [%is not%] [%Numeric%]!");
}
Parameter02 = colParameters["Parameter02"].ToString().Trim();
}
else
{
throw new Exception(TranslateMsg("Limit Qty (Parameter 02) [%NOT SET%]!", strLanguageMode, strResourceDir));
}
// 取得ERP整合設定資訊
objERPSetting = GetERPSetting();
// 取得要拋送給ERP的資訊
objQueue = GetSendQueue();
if (objQueue == null)
break;
string StopData;
var SendERPSetting = new CDO_TBLSYSERPSETTING();
bool exitTry1 = false;
foreach (CDO_TBLSYSSENDTOEAIQUEUE objQ in objQueue)
{
InXML = "";
RequestKey = "";
// 找出目前要拋送的目的服務是否有在StopRunList中如存在則不允許執行
StopData = StopRunList.Where(x => (x ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault();
if (string.IsNullOrEmpty(StopData))
{
// 取出要拋送的目的服務的ERP整合設定資訊
SendERPSetting = objERPSetting.Where(x => (x.ERP_NAME ?? "") == (objQ.SENDTO ?? "")).FirstOrDefault();
if (SendERPSetting == null)
{
// Throw New Exception("[%ERP_Name%]" & objQ.SENDTO & "[%IS NOT FOUND%]!")
// Exit Try
continue;
}
// 組Req uest XML
InXML = CombineRequestXML(SendERPSetting, objQ);
// 將資訊拋給ERP
using (var ws = new wsERP_EAI.IntegrationEntry())
{
ws.Url = SendERPSetting.ERP_WSURL;
OutXML = ws.invokeSrv(InXML);
}
// 處理執行結果
ReturnWorkCode = HandleSendResult(OutXML, objQ, SendERPSetting, Parameter01, Parameter02);
// 依回傳的結果判定是否繼續執行
bool exitTry = false;
switch (ReturnWorkCode)
{
case WorkCode.ContinueRun:
{
// 繼續執行
continue;
}
case WorkCode.StopSame:
{
// 將此次失敗的ERP名稱加到StopRunList
StopRunList.Add(objQ.SENDTO);
// 繼續執行
continue;
}
case WorkCode.StopAll:
{
// 全部停止執行
exitTry1 = exitTry = true;
break;
}
}
if (exitTry)
{
break;
}
}
}
if (exitTry1)
{
break;
}
}
catch (Exception ex)
{
throw;
}
}
while (false);
}
/// <summary>
/// 取得ERP整合的設定資料
/// </summary>
/// <returns>List(Of CDO_TBLSYSERPSETTING)</returns>
private List<CDO_TBLSYSERPSETTING> GetERPSetting()
{
var DAO = new DAO_TBLSYSERPSETTING();
var Data = new List<CDO_TBLSYSERPSETTING>();
try
{
// 取出ERP整合資訊
Data = (List<CDO_TBLSYSERPSETTING>)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List });
}
catch (Exception ex)
{
throw;
}
return Data;
}
/// <summary>
/// 取得Queue資料
/// </summary>
/// <returns>List(Of CDO_TBLSYSSENDTOEAIQUEUE)</returns>
private List<CDO_TBLSYSSENDTOEAIQUEUE> GetSendQueue()
{
var DAO = new DAO_TBLSYSSENDTOEAIQUEUE();
var Data = new List<CDO_TBLSYSSENDTOEAIQUEUE>();
try
{
// 取出待拋轉資訊
Data = (List<CDO_TBLSYSSENDTOEAIQUEUE>)DAO.Query(null, new QueryRelatedInfo() { ReturnType = ReturnMode.List });
}
catch (Exception ex)
{
throw;
}
return Data;
}
/// <summary>
/// 組出RequestXML
/// </summary>
/// <returns></returns>
private string CombineRequestXML(CDO_TBLSYSERPSETTING pERPSetting, CDO_TBLSYSSENDTOEAIQUEUE pSendContent)
{
string CombineRequestXMLRet = default(string);
DataRow[] drERPSetting;
string strFilter = "";
try
{
// pSendContent.enterprise_no = drERPSetting(0)("ERP_ENTID").ToString
// pSendContent.site_no = drERPSetting(0)("ERP_ORG").ToString
// 轉XML
string RequestHead = "<host prod=\"" + pERPSetting.MESPRODUCTNAME + "\" ver=\"" + pERPSetting.MESPRODUCTVER + "\" ip=\"" + pERPSetting.MESIP + "\" id=\"" + pERPSetting.MESID + "\" acct=\"" + pERPSetting.ERP_USER + "\" lang=\"" + pERPSetting.ERP_LANG + "\" timestamp=\"" + Strings.Format(DateTime.Now, "yyyyMMddHHmmssfff") + "\"/>";
RequestHead += "<service prod=\"" + pERPSetting.CALLEDPRODUCTNAME + "\" name=\"" + pSendContent.SERVICENAME + "\" ip=\"" + pERPSetting.CALLEDIP + "\" id=\"" + pERPSetting.CALLEDID + "\"/>";
string RequestDataKey = "<datakey><key name=\"EntId\">" + pERPSetting.ERP_ENTID + "</key><key name=\"CompanyId\">" + pERPSetting.ERP_ORG + "</key></datakey>";
string RequestXML_Body = pSendContent.PAYLOAD;
RequestKey = modAutoRunLibrary.GetRequestKey(RequestHead);
string RequestHeader = "<request key=\"" + RequestKey + "\" type=\"sync\">" + RequestHead + RequestDataKey + "<payload>" + RequestXML_Body + "</payload></request>";
// CDO to XML
CombineRequestXMLRet = RequestHeader;
}
catch (Exception ex)
{
throw;
}
return CombineRequestXMLRet;
}
/// <summary>
/// 同步結果處理
/// </summary>
/// <returns></returns>
private WorkCode HandleSendResult(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, CDO_TBLSYSERPSETTING pEAISetting, string pJobParam01, string pJobParam02)
{
WorkCode HandleSendResultRet = default(WorkCode);
//IDbConnection cnnTemp = null;
//IDbCommand cmmTemp;
string strSQL;
//System.Data.OleDbDataAdapter daTemp;
var dsTemp = new DataSet();
var objReturn = default(WorkCode);
var objEAIResult = default(object);
bool ProcessResult = false;
string ProcessMessage = "";
try
{
// 物件初始化
switch (pSendSrc.SERVICENAME ?? "")
{
case "issue.wo.item.process": // MES發料
{
objEAIResult = new SCI_Response_issue_wo_item_process();
break;
}
case "stockin.data.create": // 完工入庫
{
objEAIResult = new SCI_Response_stockin_data_create();
break;
}
case "workorder.create": // DPM 拋報工單
{
objEAIResult = new SCI_Response_workorder_create();
break;
}
}
// 將中台回的結果轉成物件
try
{
(objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult);
if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual((objEAIResult as SCI_Response_workorder_create).code, "0", false)))
{
ProcessResult = true;
}
else
{
ProcessMessage = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description);
}
}
catch (Exception ex)
{
ProcessMessage = OutXML;
}
// 紀錄TransactionLog
string argstrException = null;
modAutoRunLibrary.addTransactionLog(InXML, OutXML, DateTime.Now.ToString("yyyyMMddHHmmssss"), "MES", "StartSyncing", Environment.MachineName, "AutoRun", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), Conversions.ToString(Interaction.IIf(ProcessResult == Conversions.ToBoolean("0"), "success", "fail")), ProcessMessage, pSendSrc.SERVICENAME, strException: argstrException);
// 判斷中台回的結果
if (ProcessResult)
{
// 成功
HandleSendResultRet = WorkCode.ContinueRun;
// 處理執行成功資訊及歷程
HandleSendSuccess(pEAIResult, pSendSrc);
}
else
{
// 失敗
// 處理執行失敗資訊及歷程
HandleSendFail(pEAIResult, ProcessMessage, pSendSrc, pJobParam02);
// 寄送Mail
string argFileName = "N/A";
string argEmailSubject = "AutuRunJob : StartSyncing Fail![" + pSendSrc.SERVICENAME + "]";
string argEmailBody = TranslateMsg("[%SENDID%]" + pSendSrc.SENDID + " [%EXECUTE%] [%ISSUEMOMATERIAL%] [%FAIL%]! [%ERRORMESSAGE%]", strLanguageMode, strResourceDir) + ProcessMessage;
modAutoRunLibrary.SendMultiEmail(ref argFileName, ref argEmailSubject, argEmailBody, pJobParam01);
}
}
catch (Exception ex)
{
throw;
}
finally
{
//CloseConnection(cnnTemp);
}
return objReturn;
}
/// <summary>
/// 同步結果處理-成功
/// </summary>
/// <returns></returns>
private void HandleSendSuccess(string pEAIResult, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc)
{
string strSQL;
var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG();
var objEAIResult = new object();
var DAO = new DAO_TBLSYSSENDTOEAIQUEUE();
var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG();
var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG();
var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG();
try
{
// 執行成功後呼叫各服務各自處理邏輯
switch (pSendSrc.SERVICENAME ?? "")
{
case "issue.wo.item.process": // MES發料
{
objEAIResult = new SCI_Response_issue_wo_item_process();
// 將中台回的結果轉成物件
try
{
(objEAIResult as SCI_Response_issue_wo_item_process).ParseXmlToObject(pEAIResult);
}
catch (Exception ex)
{
throw new Exception("[%XML FORMAT ERROR%]");
}
// 解析Request XML
var cdoInXML = new SCI_Request_issue_wo_item_process();
cdoInXML.ParseXmlToObject(InXML);
object argdaoTransaction = DAO;
AddERPDocumentLog(8, Conversions.ToString((objEAIResult as SCI_Response_issue_wo_item_process).return_no), cdoInXML.doc_no, pSendSrc, ref argdaoTransaction);
DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction;
break;
}
case "stockin.data.create": // 完工入庫
{
objEAIResult = new SCI_Response_stockin_data_create();
// 將中台回的結果轉成物件
try
{
(objEAIResult as SCI_Response_stockin_data_create).ParseXmlToObject(pEAIResult);
}
catch (Exception ex)
{
throw new Exception("[%XML FORMAT ERROR%]");
}
// 解析Request XML
var cdoInXML = new SCI_Request_stockin_data_create();
cdoInXML.ParseXmlToObject(InXML);
object argdaoTransaction1 = DAO;
AddERPDocumentLog(4, Conversions.ToString((objEAIResult as SCI_Response_stockin_data_create).stock_in_no), cdoInXML.source_no, pSendSrc, ref argdaoTransaction1);
DAO = (DAO_TBLSYSSENDTOEAIQUEUE)argdaoTransaction1;
break;
}
case "workorder.create": // DPM報工單
{
objEAIResult = new SCI_Response_workorder_create();
// 將中台回的結果轉成物件
try
{
(objEAIResult as SCI_Response_workorder_create).ParseXmlToObject(pEAIResult);
}
catch (Exception ex)
{
throw new Exception("[%XML FORMAT ERROR%]");
}
// 解析Request XML
var cdoInXML = new SCI_Request_workorder_create();
cdoInXML.ParseXmlToObject(InXML);
break;
}
}
// 將Queue資訊搬至Log
objQueueLog.SENDID = pSendSrc.SENDID;
objQueueLog.SENDTO = pSendSrc.SENDTO;
objQueueLog.SERVICENAME = pSendSrc.SERVICENAME;
objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION;
objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD;
objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT;
objQueueLog.RETURNINFO = Conversions.ToString((objEAIResult as SCI_Response_workorder_create).description);
objQueueLog.RUNRESULT = "success";
objQueueLog.CREATOR = pSendSrc.CREATOR;
objQueueLog.CREATEDATE = pSendSrc.CREATEDATE;
// 2017-07-17, Joe, 將ERP入庫單號寫入Queue中還原時才能與MES發料資訊做對應一起還原
objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO;
objQueueLog.LOTSERIAL = pSendSrc.LOTSERIAL;
DAO_Log.Add(objQueueLog, DAO);
// 刪除已拋轉成功的Queue
DAO.Delete(pSendSrc, DAO);
}
catch (Exception ex)
{
throw;
}
finally
{
}
}
/// <summary>
/// 同步結果處理-失敗
/// </summary>
/// <returns></returns>
private void HandleSendFail(string pEAIResult, string pEAIMessage, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, string pJobParam02)
{
string strSQL;
var objQueueLog = new CDO_TBLSYSSENDTOEAIQUEUE_LOG();
var DAO = new DAO_TBLSYSSENDTOEAIQUEUE();
var DAO_Log = new DAO_TBLSYSSENDTOEAIQUEUE_LOG();
try
{
// 錯誤次數加1
pSendSrc.SENDCOUNT = pSendSrc.SENDCOUNT + 1;
pSendSrc.EXCEPTION = pEAIResult;
// 將此筆Queue回寫DB
DAO.Update(pSendSrc, DAO);
// 發送Mail
// 判斷目前執行的同步次數是否已達到最大限制次數
if (string.IsNullOrEmpty(pJobParam02) == false && Convert.ToInt32(pJobParam02) != -1 && pSendSrc.SENDCOUNT > Convert.ToInt32(pJobParam02))
{
// 將Queue資訊搬至Log
objQueueLog.SENDID = pSendSrc.SENDID;
objQueueLog.SENDTO = pSendSrc.SENDTO;
objQueueLog.SERVICENAME = pSendSrc.SERVICENAME;
objQueueLog.SERVICEVERSION = pSendSrc.SERVICEVERSION;
objQueueLog.SENDCONTENT = pSendSrc.PAYLOAD;
objQueueLog.SENDCOUNT = pSendSrc.SENDCOUNT;
objQueueLog.RETURNINFO = pEAIMessage;
objQueueLog.RUNRESULT = "fail";
objQueueLog.EXCEPTION = pSendSrc.EXCEPTION;
objQueueLog.CREATOR = pSendSrc.CREATOR;
objQueueLog.CREATEDATE = pSendSrc.CREATEDATE;
// 2017-07-17, Joe, 將ERP入庫單號寫入Queue中還原時才能與MES發料資訊做對應一起還原
objQueueLog.RELATIONERPNO = pSendSrc.RELATIONERPNO;
DAO_Log.Add(objQueueLog, DAO);
// 刪除已拋轉成功的Queue
DAO.Delete(pSendSrc, DAO);
}
}
catch (Exception ex)
{
throw;
}
finally
{
}
}
private object AddERPDocumentLog(int pDocType, string ERPNo, string MESNo, CDO_TBLSYSSENDTOEAIQUEUE pSendSrc, ref object daoTransaction)
{
var cdoERPDocLog = new CDO_TBLSYSERPDOCUMENTLOG();
var daoERPDocLog = new DAO_TBLSYSERPDOCUMENTLOG();
try
{
// 將資訊寫入ERP Document Log
cdoERPDocLog.TRANSID = RequestKey;
cdoERPDocLog.DOCUMENTTYPE = pDocType; // 單據類別 1:工單發料2:工單退料3:報工單4:完工入庫5:不良品入庫單6:外包出貨單7:外包回貨單8MES發料
cdoERPDocLog.MESNO = MESNo;
cdoERPDocLog.ERPNO = ERPNo;
cdoERPDocLog.CREATEDATE = pSendSrc.CREATEDATE;
// 2017-07-17, Joe, 將ERP入庫單號寫入Queue中還原時才能與MES發料資訊做對應一起還原
cdoERPDocLog.RELATIONERPNO = pSendSrc.RELATIONERPNO;
cdoERPDocLog.SENDID = pSendSrc.SENDID;
daoERPDocLog.Add(cdoERPDocLog, (iMESDBBase)daoTransaction);
}
catch (Exception ex)
{
throw;
}
return default(Object);
}
}
}

View File

@ -0,0 +1,161 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System.Diagnostics;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
namespace AutoRunLib_C.My
{
[System.Runtime.CompilerServices.CompilerGenerated()]
[System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase
{
private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings());
#region My.Settings
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
#endregion
public static MySettings Default
{
get
{
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
return defaultInstance;
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://localhost/ERPws_DSC/wsMES.asmx")]
public string AutoRunLib_wsERP_MES_wsMES
{
get
{
return Conversions.ToString(this["AutoRunLib_wsERP_MES_wsMES"]);
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o")]
public string AutoRunLib_wsERP_TP_TIPTOPServiceGateWay
{
get
{
return Conversions.ToString(this["AutoRunLib_wsERP_TP_TIPTOPServiceGateWay"]);
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o")]
public string AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay
{
get
{
return Conversions.ToString(this["AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay"]);
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://10.40.41.197:9999/IntegrationEntry")]
public string AutoRunLib_wsERP_EAI_IntegrationEntry
{
get
{
return Conversions.ToString(this["AutoRunLib_wsERP_EAI_IntegrationEntry"]);
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://localhost/MESws_STD/wsInvoke.asmx")]
public string AutoRunLib_wsInvoke_wsInvoke
{
get
{
return Conversions.ToString(this["AutoRunLib_wsInvoke_wsInvoke"]);
}
}
[System.Configuration.ApplicationScopedSetting()]
[DebuggerNonUserCode()]
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
[System.Configuration.DefaultSettingValue("http://10.40.30.73/WFMES/WFMESService.asmx")]
public string AutoRunLib_wsERP_WorkFlow_WFMESService
{
get
{
return Conversions.ToString(this["AutoRunLib_wsERP_WorkFlow_WFMESService"]);
}
}
}
}
namespace AutoRunLib_C.My
{
[HideModuleName()]
[DebuggerNonUserCode()]
[System.Runtime.CompilerServices.CompilerGenerated()]
internal static class MySettingsProperty
{
[System.ComponentModel.Design.HelpKeyword("My.Settings")]
internal static MySettings Settings
{
get
{
return MySettings.Default;
}
}
}
}

View File

@ -0,0 +1,24 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="AutoRunLib_wsERP_MES_wsMES" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://localhost/ERPws_DSC/wsMES.asmx</Value>
</Setting>
<Setting Name="AutoRunLib_wsERP_TP_TIPTOPServiceGateWay" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o</Value>
</Setting>
<Setting Name="AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o</Value>
</Setting>
<Setting Name="AutoRunLib_wsERP_EAI_IntegrationEntry" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://10.40.41.197:9999/IntegrationEntry</Value>
</Setting>
<Setting Name="AutoRunLib_wsInvoke_wsInvoke" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://localhost/MESws_STD/wsInvoke.asmx</Value>
</Setting>
<Setting Name="AutoRunLib_wsERP_WorkFlow_WFMESService" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">http://10.40.30.73/WFMES/WFMESService.asmx</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1 @@
[assembly: System.Reflection.AssemblyFileVersion("6.0.5.31114")]

View File

@ -0,0 +1,372 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:intf="http://entry.serviceengine.cross.digiwin.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://entry.serviceengine.cross.digiwin.com" targetNamespace="http://entry.serviceengine.cross.digiwin.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://entry.serviceengine.cross.digiwin.com">
<xsd:element name="regEAI">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="regEAIResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="regEAIReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getParamList">
<xsd:complexType />
</xsd:element>
<xsd:element name="getParamListResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getParamListReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="regProdAP">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="regProdAPResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="regProdAPReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="regSrv">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="regSrvResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="regSrvReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProdList">
<xsd:complexType />
</xsd:element>
<xsd:element name="getProdListResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProdListReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProd">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProdResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProdReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getSrv">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getSrvResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getSrvReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeEtl">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeEtlResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="invokeEtlReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeSrv">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeSrvResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="invokeSrvReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getEtlJobList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getEtlJobListResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getEtlJobListReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeMdm">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="invokeMdmResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="invokeMdmReturn" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="invokeEtlResponse">
<wsdl:part name="parameters" element="impl:invokeEtlResponse" />
</wsdl:message>
<wsdl:message name="invokeEtlRequest">
<wsdl:part name="parameters" element="impl:invokeEtl" />
</wsdl:message>
<wsdl:message name="regSrvRequest">
<wsdl:part name="parameters" element="impl:regSrv" />
</wsdl:message>
<wsdl:message name="invokeSrvResponse">
<wsdl:part name="parameters" element="impl:invokeSrvResponse" />
</wsdl:message>
<wsdl:message name="regEAIRequest">
<wsdl:part name="parameters" element="impl:regEAI" />
</wsdl:message>
<wsdl:message name="getProdListResponse">
<wsdl:part name="parameters" element="impl:getProdListResponse" />
</wsdl:message>
<wsdl:message name="getProdResponse">
<wsdl:part name="parameters" element="impl:getProdResponse" />
</wsdl:message>
<wsdl:message name="regProdAPResponse">
<wsdl:part name="parameters" element="impl:regProdAPResponse" />
</wsdl:message>
<wsdl:message name="getEtlJobListRequest">
<wsdl:part name="parameters" element="impl:getEtlJobList" />
</wsdl:message>
<wsdl:message name="getSrvRequest">
<wsdl:part name="parameters" element="impl:getSrv" />
</wsdl:message>
<wsdl:message name="invokeSrvRequest">
<wsdl:part name="parameters" element="impl:invokeSrv" />
</wsdl:message>
<wsdl:message name="getParamListResponse">
<wsdl:part name="parameters" element="impl:getParamListResponse" />
</wsdl:message>
<wsdl:message name="getSrvResponse">
<wsdl:part name="parameters" element="impl:getSrvResponse" />
</wsdl:message>
<wsdl:message name="getParamListRequest">
<wsdl:part name="parameters" element="impl:getParamList" />
</wsdl:message>
<wsdl:message name="getProdRequest">
<wsdl:part name="parameters" element="impl:getProd" />
</wsdl:message>
<wsdl:message name="invokeMdmResponse">
<wsdl:part name="parameters" element="impl:invokeMdmResponse" />
</wsdl:message>
<wsdl:message name="regSrvResponse">
<wsdl:part name="parameters" element="impl:regSrvResponse" />
</wsdl:message>
<wsdl:message name="getProdListRequest">
<wsdl:part name="parameters" element="impl:getProdList" />
</wsdl:message>
<wsdl:message name="getEtlJobListResponse">
<wsdl:part name="parameters" element="impl:getEtlJobListResponse" />
</wsdl:message>
<wsdl:message name="invokeMdmRequest">
<wsdl:part name="parameters" element="impl:invokeMdm" />
</wsdl:message>
<wsdl:message name="regEAIResponse">
<wsdl:part name="parameters" element="impl:regEAIResponse" />
</wsdl:message>
<wsdl:message name="regProdAPRequest">
<wsdl:part name="parameters" element="impl:regProdAP" />
</wsdl:message>
<wsdl:portType name="IntegrationEntry">
<wsdl:operation name="regEAI">
<wsdl:input name="regEAIRequest" message="impl:regEAIRequest" />
<wsdl:output name="regEAIResponse" message="impl:regEAIResponse" />
</wsdl:operation>
<wsdl:operation name="getParamList">
<wsdl:input name="getParamListRequest" message="impl:getParamListRequest" />
<wsdl:output name="getParamListResponse" message="impl:getParamListResponse" />
</wsdl:operation>
<wsdl:operation name="regProdAP">
<wsdl:input name="regProdAPRequest" message="impl:regProdAPRequest" />
<wsdl:output name="regProdAPResponse" message="impl:regProdAPResponse" />
</wsdl:operation>
<wsdl:operation name="regSrv">
<wsdl:input name="regSrvRequest" message="impl:regSrvRequest" />
<wsdl:output name="regSrvResponse" message="impl:regSrvResponse" />
</wsdl:operation>
<wsdl:operation name="getProdList">
<wsdl:input name="getProdListRequest" message="impl:getProdListRequest" />
<wsdl:output name="getProdListResponse" message="impl:getProdListResponse" />
</wsdl:operation>
<wsdl:operation name="getProd">
<wsdl:input name="getProdRequest" message="impl:getProdRequest" />
<wsdl:output name="getProdResponse" message="impl:getProdResponse" />
</wsdl:operation>
<wsdl:operation name="getSrv">
<wsdl:input name="getSrvRequest" message="impl:getSrvRequest" />
<wsdl:output name="getSrvResponse" message="impl:getSrvResponse" />
</wsdl:operation>
<wsdl:operation name="invokeEtl">
<wsdl:input name="invokeEtlRequest" message="impl:invokeEtlRequest" />
<wsdl:output name="invokeEtlResponse" message="impl:invokeEtlResponse" />
</wsdl:operation>
<wsdl:operation name="invokeSrv">
<wsdl:input name="invokeSrvRequest" message="impl:invokeSrvRequest" />
<wsdl:output name="invokeSrvResponse" message="impl:invokeSrvResponse" />
</wsdl:operation>
<wsdl:operation name="getEtlJobList">
<wsdl:input name="getEtlJobListRequest" message="impl:getEtlJobListRequest" />
<wsdl:output name="getEtlJobListResponse" message="impl:getEtlJobListResponse" />
</wsdl:operation>
<wsdl:operation name="invokeMdm">
<wsdl:input name="invokeMdmRequest" message="impl:invokeMdmRequest" />
<wsdl:output name="invokeMdmResponse" message="impl:invokeMdmResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="IntegrationEntrySoapBinding" type="impl:IntegrationEntry">
<wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="regEAI">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="regEAIRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="regEAIResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getParamList">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getParamListRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getParamListResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="regProdAP">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="regProdAPRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="regProdAPResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="regSrv">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="regSrvRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="regSrvResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getProdList">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getProdListRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getProdListResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getProd">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getProdRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getProdResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getSrv">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getSrvRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getSrvResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeEtl">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="invokeEtlRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="invokeEtlResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="invokeSrvRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="invokeSrvResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getEtlJobList">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getEtlJobListRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getEtlJobListResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeMdm">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="invokeMdmRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="invokeMdmResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="IntegrationEntry">
<wsdl:port name="IntegrationEntry" binding="impl:IntegrationEntrySoapBinding">
<wsdlsoap:address location="http://10.40.41.197:9999/IntegrationEntry" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -0,0 +1,980 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.VisualBasic.CompilerServices;
//
// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。
//
namespace AutoRunLib_C.wsERP_EAI
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
[WebServiceBinding(Name = "IntegrationEntrySoapBinding", Namespace = "http://entry.serviceengine.cross.digiwin.com")]
public partial class IntegrationEntry : SoapHttpClientProtocol
{
private System.Threading.SendOrPostCallback regEAIOperationCompleted;
private System.Threading.SendOrPostCallback getParamListOperationCompleted;
private System.Threading.SendOrPostCallback regProdAPOperationCompleted;
private System.Threading.SendOrPostCallback regSrvOperationCompleted;
private System.Threading.SendOrPostCallback getProdListOperationCompleted;
private System.Threading.SendOrPostCallback getProdOperationCompleted;
private System.Threading.SendOrPostCallback getSrvOperationCompleted;
private System.Threading.SendOrPostCallback invokeEtlOperationCompleted;
private System.Threading.SendOrPostCallback invokeSrvOperationCompleted;
private System.Threading.SendOrPostCallback getEtlJobListOperationCompleted;
private System.Threading.SendOrPostCallback invokeMdmOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
public IntegrationEntry() : base()
{
Url = My.MySettings.Default.AutoRunLib_wsERP_EAI_IntegrationEntry;
if (IsLocalFileSystemWebService(Url) == true)
{
UseDefaultCredentials = true;
useDefaultCredentialsSetExplicitly = false;
}
else
{
useDefaultCredentialsSetExplicitly = true;
}
}
public new string Url
{
get
{
return base.Url;
}
set
{
if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false)
{
base.UseDefaultCredentials = false;
}
base.Url = value;
}
}
public new bool UseDefaultCredentials
{
get
{
return base.UseDefaultCredentials;
}
set
{
base.UseDefaultCredentials = value;
useDefaultCredentialsSetExplicitly = true;
}
}
/// <remarks/>
public event regEAICompletedEventHandler regEAICompleted;
/// <remarks/>
public event getParamListCompletedEventHandler getParamListCompleted;
/// <remarks/>
public event regProdAPCompletedEventHandler regProdAPCompleted;
/// <remarks/>
public event regSrvCompletedEventHandler regSrvCompleted;
/// <remarks/>
public event getProdListCompletedEventHandler getProdListCompleted;
/// <remarks/>
public event getProdCompletedEventHandler getProdCompleted;
/// <remarks/>
public event getSrvCompletedEventHandler getSrvCompleted;
/// <remarks/>
public event invokeEtlCompletedEventHandler invokeEtlCompleted;
/// <remarks/>
public event invokeSrvCompletedEventHandler invokeSrvCompleted;
/// <remarks/>
public event getEtlJobListCompletedEventHandler getEtlJobListCompleted;
/// <remarks/>
public event invokeMdmCompletedEventHandler invokeMdmCompleted;
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string regEAI(string in0)
{
object[] results = Invoke("regEAI", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BeginregEAI(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("regEAI", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndregEAI(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void regEAIAsync(string in0)
{
regEAIAsync(in0, null);
}
/// <remarks/>
public void regEAIAsync(string in0, object userState)
{
if (regEAIOperationCompleted == null)
{
regEAIOperationCompleted = OnregEAIOperationCompleted;
}
InvokeAsync("regEAI", new object[] { in0 }, regEAIOperationCompleted, userState);
}
private void OnregEAIOperationCompleted(object arg)
{
if (regEAICompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
regEAICompleted?.Invoke(this, new regEAICompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string getParamList()
{
object[] results = Invoke("getParamList", new object[0]);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegingetParamList(AsyncCallback callback, object asyncState)
{
return BeginInvoke("getParamList", new object[0], callback, asyncState);
}
/// <remarks/>
public string EndgetParamList(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void getParamListAsync()
{
getParamListAsync(null);
}
/// <remarks/>
public void getParamListAsync(object userState)
{
if (getParamListOperationCompleted == null)
{
getParamListOperationCompleted = OngetParamListOperationCompleted;
}
InvokeAsync("getParamList", new object[0], getParamListOperationCompleted, userState);
}
private void OngetParamListOperationCompleted(object arg)
{
if (getParamListCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
getParamListCompleted?.Invoke(this, new getParamListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string regProdAP(string in0)
{
object[] results = Invoke("regProdAP", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BeginregProdAP(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("regProdAP", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndregProdAP(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void regProdAPAsync(string in0)
{
regProdAPAsync(in0, null);
}
/// <remarks/>
public void regProdAPAsync(string in0, object userState)
{
if (regProdAPOperationCompleted == null)
{
regProdAPOperationCompleted = OnregProdAPOperationCompleted;
}
InvokeAsync("regProdAP", new object[] { in0 }, regProdAPOperationCompleted, userState);
}
private void OnregProdAPOperationCompleted(object arg)
{
if (regProdAPCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
regProdAPCompleted?.Invoke(this, new regProdAPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string regSrv(string in0)
{
object[] results = Invoke("regSrv", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BeginregSrv(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("regSrv", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndregSrv(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void regSrvAsync(string in0)
{
regSrvAsync(in0, null);
}
/// <remarks/>
public void regSrvAsync(string in0, object userState)
{
if (regSrvOperationCompleted == null)
{
regSrvOperationCompleted = OnregSrvOperationCompleted;
}
InvokeAsync("regSrv", new object[] { in0 }, regSrvOperationCompleted, userState);
}
private void OnregSrvOperationCompleted(object arg)
{
if (regSrvCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
regSrvCompleted?.Invoke(this, new regSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string getProdList()
{
object[] results = Invoke("getProdList", new object[0]);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegingetProdList(AsyncCallback callback, object asyncState)
{
return BeginInvoke("getProdList", new object[0], callback, asyncState);
}
/// <remarks/>
public string EndgetProdList(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void getProdListAsync()
{
getProdListAsync(null);
}
/// <remarks/>
public void getProdListAsync(object userState)
{
if (getProdListOperationCompleted == null)
{
getProdListOperationCompleted = OngetProdListOperationCompleted;
}
InvokeAsync("getProdList", new object[0], getProdListOperationCompleted, userState);
}
private void OngetProdListOperationCompleted(object arg)
{
if (getProdListCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
getProdListCompleted?.Invoke(this, new getProdListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string getProd(string in0)
{
object[] results = Invoke("getProd", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegingetProd(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("getProd", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndgetProd(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void getProdAsync(string in0)
{
getProdAsync(in0, null);
}
/// <remarks/>
public void getProdAsync(string in0, object userState)
{
if (getProdOperationCompleted == null)
{
getProdOperationCompleted = OngetProdOperationCompleted;
}
InvokeAsync("getProd", new object[] { in0 }, getProdOperationCompleted, userState);
}
private void OngetProdOperationCompleted(object arg)
{
if (getProdCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
getProdCompleted?.Invoke(this, new getProdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string getSrv(string in0)
{
object[] results = Invoke("getSrv", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegingetSrv(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("getSrv", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndgetSrv(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void getSrvAsync(string in0)
{
getSrvAsync(in0, null);
}
/// <remarks/>
public void getSrvAsync(string in0, object userState)
{
if (getSrvOperationCompleted == null)
{
getSrvOperationCompleted = OngetSrvOperationCompleted;
}
InvokeAsync("getSrv", new object[] { in0 }, getSrvOperationCompleted, userState);
}
private void OngetSrvOperationCompleted(object arg)
{
if (getSrvCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
getSrvCompleted?.Invoke(this, new getSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string invokeEtl(string in0)
{
object[] results = Invoke("invokeEtl", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegininvokeEtl(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeEtl", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndinvokeEtl(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void invokeEtlAsync(string in0)
{
invokeEtlAsync(in0, null);
}
/// <remarks/>
public void invokeEtlAsync(string in0, object userState)
{
if (invokeEtlOperationCompleted == null)
{
invokeEtlOperationCompleted = OninvokeEtlOperationCompleted;
}
InvokeAsync("invokeEtl", new object[] { in0 }, invokeEtlOperationCompleted, userState);
}
private void OninvokeEtlOperationCompleted(object arg)
{
if (invokeEtlCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeEtlCompleted?.Invoke(this, new invokeEtlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string invokeSrv(string in0)
{
object[] results = Invoke("invokeSrv", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegininvokeSrv(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeSrv", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndinvokeSrv(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void invokeSrvAsync(string in0)
{
invokeSrvAsync(in0, null);
}
/// <remarks/>
public void invokeSrvAsync(string in0, object userState)
{
if (invokeSrvOperationCompleted == null)
{
invokeSrvOperationCompleted = OninvokeSrvOperationCompleted;
}
InvokeAsync("invokeSrv", new object[] { in0 }, invokeSrvOperationCompleted, userState);
}
private void OninvokeSrvOperationCompleted(object arg)
{
if (invokeSrvCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeSrvCompleted?.Invoke(this, new invokeSrvCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string getEtlJobList(string in0)
{
object[] results = Invoke("getEtlJobList", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegingetEtlJobList(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("getEtlJobList", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndgetEtlJobList(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void getEtlJobListAsync(string in0)
{
getEtlJobListAsync(in0, null);
}
/// <remarks/>
public void getEtlJobListAsync(string in0, object userState)
{
if (getEtlJobListOperationCompleted == null)
{
getEtlJobListOperationCompleted = OngetEtlJobListOperationCompleted;
}
InvokeAsync("getEtlJobList", new object[] { in0 }, getEtlJobListOperationCompleted, userState);
}
private void OngetEtlJobListOperationCompleted(object arg)
{
if (getEtlJobListCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
getEtlJobListCompleted?.Invoke(this, new getEtlJobListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[SoapDocumentMethod("", RequestNamespace = "http://entry.serviceengine.cross.digiwin.com", ResponseNamespace = "http://entry.serviceengine.cross.digiwin.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string invokeMdm(string in0)
{
object[] results = Invoke("invokeMdm", new object[] { in0 });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BegininvokeMdm(string in0, AsyncCallback callback, object asyncState)
{
return BeginInvoke("invokeMdm", new object[] { in0 }, callback, asyncState);
}
/// <remarks/>
public string EndinvokeMdm(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void invokeMdmAsync(string in0)
{
invokeMdmAsync(in0, null);
}
/// <remarks/>
public void invokeMdmAsync(string in0, object userState)
{
if (invokeMdmOperationCompleted == null)
{
invokeMdmOperationCompleted = OninvokeMdmOperationCompleted;
}
InvokeAsync("invokeMdm", new object[] { in0 }, invokeMdmOperationCompleted, userState);
}
private void OninvokeMdmOperationCompleted(object arg)
{
if (invokeMdmCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
invokeMdmCompleted?.Invoke(this, new invokeMdmCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState)
{
base.CancelAsync(userState);
}
private bool IsLocalFileSystemWebService(string url)
{
if (url == null || ReferenceEquals(url, string.Empty))
{
return false;
}
var wsUri = new Uri(url);
if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0)
{
return true;
}
return false;
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void regEAICompletedEventHandler(object sender, regEAICompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class regEAICompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal regEAICompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void getParamListCompletedEventHandler(object sender, getParamListCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class getParamListCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal getParamListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void regProdAPCompletedEventHandler(object sender, regProdAPCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class regProdAPCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal regProdAPCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void regSrvCompletedEventHandler(object sender, regSrvCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class regSrvCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal regSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void getProdListCompletedEventHandler(object sender, getProdListCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class getProdListCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal getProdListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void getProdCompletedEventHandler(object sender, getProdCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class getProdCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal getProdCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void getSrvCompletedEventHandler(object sender, getSrvCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class getSrvCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal getSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeEtlCompletedEventHandler(object sender, invokeEtlCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeEtlCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeEtlCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeSrvCompletedEventHandler(object sender, invokeSrvCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeSrvCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeSrvCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void getEtlJobListCompletedEventHandler(object sender, getEtlJobListCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class getEtlJobListCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal getEtlJobListCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void invokeMdmCompletedEventHandler(object sender, invokeMdmCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class invokeMdmCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal invokeMdmCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://218.211.164.199:9999/IntegrationEntry?wsdl" filename="IntegrationEntry.wsdl" />
</Results>
</DiscoveryClientResultsFile>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost/ERPws_DSC/wsMES.asmx?disco" filename="wsMES.disco" />
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost/ERPws_DSC/wsMES.asmx?wsdl" filename="wsMES.wsdl" />
</Results>
</DiscoveryClientResultsFile>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost/ERPws_DSC/wsMES.asmx?wsdl" docRef="http://localhost/ERPws_DSC/wsMES.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost/ERPws_DSC/wsMES.asmx" xmlns:q1="http://www.imestech.com/wsMES" binding="q1:wsMESSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://localhost/ERPws_DSC/wsMES.asmx" xmlns:q2="http://www.imestech.com/wsMES" binding="q2:wsMESSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>

View File

@ -0,0 +1,925 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.imestech.com/wsMES" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://www.imestech.com/wsMES" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.imestech.com/wsMES">
<s:element name="LoadWIPInventory_SEMIbyMO_TP">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadWIPInventory_SEMIbyMO_TPResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoadWIPInventory_SEMIbyMO_TPResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="loadWIP_SEMI_MO_TP">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="loadWIP_SEMI_MO_TPResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="loadWIP_SEMI_MO_TPResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="loadWIP_SEMI_MO_WF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="loadWIP_SEMI_MO_WFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="loadWIP_SEMI_MO_WFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ChkmesStockIn_Lot">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ChkmesStockIn_LotResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ChkmesStockIn_LotResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="updateINVBookingFlag">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="updateINVBookingFlagResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="updateINVBookingFlagResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_TP">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_TPResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_TPResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_E10">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_E10Response">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_E10Result" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_Scrap_TP">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_Scrap_TPResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_Scrap_TPResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_WF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_WFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_WFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_Check_WF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_Check_WFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_Check_WFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_WF_Cancel">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOStockIn_WF_CancelResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOStockIn_WF_CancelResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadWIPInventory_SEMIbyMO_WF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadWIPInventory_SEMIbyMO_WFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoadWIPInventory_SEMIbyMO_WFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadOEMOBasis_byLot_WF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadOEMOBasis_byLot_WFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoadOEMOBasis_byLot_WFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="UpdOSBasis">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="UpdOSBasisResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UpdOSBasisResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadMOMaterialStateOP">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadMOMaterialStateOPResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoadMOMaterialStateOPResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadMOMaterialState">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LoadMOMaterialStateResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoadMOMaterialStateResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOIssueReturn">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOIssueReturnResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOIssueReturnResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOIssueReturn_Cancel">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MOIssueReturn_CancelResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MOIssueReturn_CancelResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ExeMaterialScrap">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ExeMaterialScrapResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ExeMaterialScrapResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetERPReferenceNo">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetERPReferenceNoResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetERPReferenceNoResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="addTransactionLog">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="OutXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="TransactionID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ModuleID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FunctionID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ComputerName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CurUserNo" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="SendTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Result" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="KeyValue" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ExceptionFun" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="arrException" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="addTransactionLogResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="addTransactionLogResult" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="arrException" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="LoadWIPInventory_SEMIbyMO_TPSoapIn">
<wsdl:part name="parameters" element="tns:LoadWIPInventory_SEMIbyMO_TP" />
</wsdl:message>
<wsdl:message name="LoadWIPInventory_SEMIbyMO_TPSoapOut">
<wsdl:part name="parameters" element="tns:LoadWIPInventory_SEMIbyMO_TPResponse" />
</wsdl:message>
<wsdl:message name="loadWIP_SEMI_MO_TPSoapIn">
<wsdl:part name="parameters" element="tns:loadWIP_SEMI_MO_TP" />
</wsdl:message>
<wsdl:message name="loadWIP_SEMI_MO_TPSoapOut">
<wsdl:part name="parameters" element="tns:loadWIP_SEMI_MO_TPResponse" />
</wsdl:message>
<wsdl:message name="loadWIP_SEMI_MO_WFSoapIn">
<wsdl:part name="parameters" element="tns:loadWIP_SEMI_MO_WF" />
</wsdl:message>
<wsdl:message name="loadWIP_SEMI_MO_WFSoapOut">
<wsdl:part name="parameters" element="tns:loadWIP_SEMI_MO_WFResponse" />
</wsdl:message>
<wsdl:message name="ChkmesStockIn_LotSoapIn">
<wsdl:part name="parameters" element="tns:ChkmesStockIn_Lot" />
</wsdl:message>
<wsdl:message name="ChkmesStockIn_LotSoapOut">
<wsdl:part name="parameters" element="tns:ChkmesStockIn_LotResponse" />
</wsdl:message>
<wsdl:message name="updateINVBookingFlagSoapIn">
<wsdl:part name="parameters" element="tns:updateINVBookingFlag" />
</wsdl:message>
<wsdl:message name="updateINVBookingFlagSoapOut">
<wsdl:part name="parameters" element="tns:updateINVBookingFlagResponse" />
</wsdl:message>
<wsdl:message name="MOStockIn_TPSoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_TP" />
</wsdl:message>
<wsdl:message name="MOStockIn_TPSoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_TPResponse" />
</wsdl:message>
<wsdl:message name="MOStockIn_E10SoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_E10" />
</wsdl:message>
<wsdl:message name="MOStockIn_E10SoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_E10Response" />
</wsdl:message>
<wsdl:message name="MOStockIn_Scrap_TPSoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_Scrap_TP" />
</wsdl:message>
<wsdl:message name="MOStockIn_Scrap_TPSoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_Scrap_TPResponse" />
</wsdl:message>
<wsdl:message name="MOStockIn_WFSoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_WF" />
</wsdl:message>
<wsdl:message name="MOStockIn_WFSoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_WFResponse" />
</wsdl:message>
<wsdl:message name="MOStockIn_Check_WFSoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_Check_WF" />
</wsdl:message>
<wsdl:message name="MOStockIn_Check_WFSoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_Check_WFResponse" />
</wsdl:message>
<wsdl:message name="MOStockIn_WF_CancelSoapIn">
<wsdl:part name="parameters" element="tns:MOStockIn_WF_Cancel" />
</wsdl:message>
<wsdl:message name="MOStockIn_WF_CancelSoapOut">
<wsdl:part name="parameters" element="tns:MOStockIn_WF_CancelResponse" />
</wsdl:message>
<wsdl:message name="LoadWIPInventory_SEMIbyMO_WFSoapIn">
<wsdl:part name="parameters" element="tns:LoadWIPInventory_SEMIbyMO_WF" />
</wsdl:message>
<wsdl:message name="LoadWIPInventory_SEMIbyMO_WFSoapOut">
<wsdl:part name="parameters" element="tns:LoadWIPInventory_SEMIbyMO_WFResponse" />
</wsdl:message>
<wsdl:message name="LoadOEMOBasis_byLot_WFSoapIn">
<wsdl:part name="parameters" element="tns:LoadOEMOBasis_byLot_WF" />
</wsdl:message>
<wsdl:message name="LoadOEMOBasis_byLot_WFSoapOut">
<wsdl:part name="parameters" element="tns:LoadOEMOBasis_byLot_WFResponse" />
</wsdl:message>
<wsdl:message name="UpdOSBasisSoapIn">
<wsdl:part name="parameters" element="tns:UpdOSBasis" />
</wsdl:message>
<wsdl:message name="UpdOSBasisSoapOut">
<wsdl:part name="parameters" element="tns:UpdOSBasisResponse" />
</wsdl:message>
<wsdl:message name="LoadMOMaterialStateOPSoapIn">
<wsdl:part name="parameters" element="tns:LoadMOMaterialStateOP" />
</wsdl:message>
<wsdl:message name="LoadMOMaterialStateOPSoapOut">
<wsdl:part name="parameters" element="tns:LoadMOMaterialStateOPResponse" />
</wsdl:message>
<wsdl:message name="LoadMOMaterialStateSoapIn">
<wsdl:part name="parameters" element="tns:LoadMOMaterialState" />
</wsdl:message>
<wsdl:message name="LoadMOMaterialStateSoapOut">
<wsdl:part name="parameters" element="tns:LoadMOMaterialStateResponse" />
</wsdl:message>
<wsdl:message name="MOIssueReturnSoapIn">
<wsdl:part name="parameters" element="tns:MOIssueReturn" />
</wsdl:message>
<wsdl:message name="MOIssueReturnSoapOut">
<wsdl:part name="parameters" element="tns:MOIssueReturnResponse" />
</wsdl:message>
<wsdl:message name="MOIssueReturn_CancelSoapIn">
<wsdl:part name="parameters" element="tns:MOIssueReturn_Cancel" />
</wsdl:message>
<wsdl:message name="MOIssueReturn_CancelSoapOut">
<wsdl:part name="parameters" element="tns:MOIssueReturn_CancelResponse" />
</wsdl:message>
<wsdl:message name="ExeMaterialScrapSoapIn">
<wsdl:part name="parameters" element="tns:ExeMaterialScrap" />
</wsdl:message>
<wsdl:message name="ExeMaterialScrapSoapOut">
<wsdl:part name="parameters" element="tns:ExeMaterialScrapResponse" />
</wsdl:message>
<wsdl:message name="GetERPReferenceNoSoapIn">
<wsdl:part name="parameters" element="tns:GetERPReferenceNo" />
</wsdl:message>
<wsdl:message name="GetERPReferenceNoSoapOut">
<wsdl:part name="parameters" element="tns:GetERPReferenceNoResponse" />
</wsdl:message>
<wsdl:message name="addTransactionLogSoapIn">
<wsdl:part name="parameters" element="tns:addTransactionLog" />
</wsdl:message>
<wsdl:message name="addTransactionLogSoapOut">
<wsdl:part name="parameters" element="tns:addTransactionLogResponse" />
</wsdl:message>
<wsdl:portType name="wsMESSoap">
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_TP">
<wsdl:input message="tns:LoadWIPInventory_SEMIbyMO_TPSoapIn" />
<wsdl:output message="tns:LoadWIPInventory_SEMIbyMO_TPSoapOut" />
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_TP">
<wsdl:input message="tns:loadWIP_SEMI_MO_TPSoapIn" />
<wsdl:output message="tns:loadWIP_SEMI_MO_TPSoapOut" />
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_WF">
<wsdl:input message="tns:loadWIP_SEMI_MO_WFSoapIn" />
<wsdl:output message="tns:loadWIP_SEMI_MO_WFSoapOut" />
</wsdl:operation>
<wsdl:operation name="ChkmesStockIn_Lot">
<wsdl:input message="tns:ChkmesStockIn_LotSoapIn" />
<wsdl:output message="tns:ChkmesStockIn_LotSoapOut" />
</wsdl:operation>
<wsdl:operation name="updateINVBookingFlag">
<wsdl:input message="tns:updateINVBookingFlagSoapIn" />
<wsdl:output message="tns:updateINVBookingFlagSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_TP">
<wsdl:input message="tns:MOStockIn_TPSoapIn" />
<wsdl:output message="tns:MOStockIn_TPSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_E10">
<wsdl:input message="tns:MOStockIn_E10SoapIn" />
<wsdl:output message="tns:MOStockIn_E10SoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_Scrap_TP">
<wsdl:input message="tns:MOStockIn_Scrap_TPSoapIn" />
<wsdl:output message="tns:MOStockIn_Scrap_TPSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF">
<wsdl:input message="tns:MOStockIn_WFSoapIn" />
<wsdl:output message="tns:MOStockIn_WFSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_Check_WF">
<wsdl:input message="tns:MOStockIn_Check_WFSoapIn" />
<wsdl:output message="tns:MOStockIn_Check_WFSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF_Cancel">
<wsdl:input message="tns:MOStockIn_WF_CancelSoapIn" />
<wsdl:output message="tns:MOStockIn_WF_CancelSoapOut" />
</wsdl:operation>
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_WF">
<wsdl:input message="tns:LoadWIPInventory_SEMIbyMO_WFSoapIn" />
<wsdl:output message="tns:LoadWIPInventory_SEMIbyMO_WFSoapOut" />
</wsdl:operation>
<wsdl:operation name="LoadOEMOBasis_byLot_WF">
<wsdl:input message="tns:LoadOEMOBasis_byLot_WFSoapIn" />
<wsdl:output message="tns:LoadOEMOBasis_byLot_WFSoapOut" />
</wsdl:operation>
<wsdl:operation name="UpdOSBasis">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Update OSBasis</wsdl:documentation>
<wsdl:input message="tns:UpdOSBasisSoapIn" />
<wsdl:output message="tns:UpdOSBasisSoapOut" />
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialStateOP">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Load MO Material State OP by MONo</wsdl:documentation>
<wsdl:input message="tns:LoadMOMaterialStateOPSoapIn" />
<wsdl:output message="tns:LoadMOMaterialStateOPSoapOut" />
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialState">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Load MO Material State by MONo</wsdl:documentation>
<wsdl:input message="tns:LoadMOMaterialStateSoapIn" />
<wsdl:output message="tns:LoadMOMaterialStateSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOIssueReturn">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">MO Issue Return</wsdl:documentation>
<wsdl:input message="tns:MOIssueReturnSoapIn" />
<wsdl:output message="tns:MOIssueReturnSoapOut" />
</wsdl:operation>
<wsdl:operation name="MOIssueReturn_Cancel">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">MOIssueReturn_Cancel</wsdl:documentation>
<wsdl:input message="tns:MOIssueReturn_CancelSoapIn" />
<wsdl:output message="tns:MOIssueReturn_CancelSoapOut" />
</wsdl:operation>
<wsdl:operation name="ExeMaterialScrap">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Execute Matreial Scrap</wsdl:documentation>
<wsdl:input message="tns:ExeMaterialScrapSoapIn" />
<wsdl:output message="tns:ExeMaterialScrapSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetERPReferenceNo">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get ERP Reference No</wsdl:documentation>
<wsdl:input message="tns:GetERPReferenceNoSoapIn" />
<wsdl:output message="tns:GetERPReferenceNoSoapOut" />
</wsdl:operation>
<wsdl:operation name="addTransactionLog">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Add Transaction Log</wsdl:documentation>
<wsdl:input message="tns:addTransactionLogSoapIn" />
<wsdl:output message="tns:addTransactionLogSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="wsMESSoap" type="tns:wsMESSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_TP">
<soap:operation soapAction="http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_TP" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_TP">
<soap:operation soapAction="http://www.imestech.com/wsMES/loadWIP_SEMI_MO_TP" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_WF">
<soap:operation soapAction="http://www.imestech.com/wsMES/loadWIP_SEMI_MO_WF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ChkmesStockIn_Lot">
<soap:operation soapAction="http://www.imestech.com/wsMES/ChkmesStockIn_Lot" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateINVBookingFlag">
<soap:operation soapAction="http://www.imestech.com/wsMES/updateINVBookingFlag" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_TP">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_TP" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_E10">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_E10" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_Scrap_TP">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_Scrap_TP" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_WF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_Check_WF">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_Check_WF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF_Cancel">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_WF_Cancel" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_WF">
<soap:operation soapAction="http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_WF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadOEMOBasis_byLot_WF">
<soap:operation soapAction="http://www.imestech.com/wsMES/LoadOEMOBasis_byLot_WF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="UpdOSBasis">
<soap:operation soapAction="http://www.imestech.com/wsMES/UpdOSBasis" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialStateOP">
<soap:operation soapAction="http://www.imestech.com/wsMES/LoadMOMaterialStateOP" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialState">
<soap:operation soapAction="http://www.imestech.com/wsMES/LoadMOMaterialState" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOIssueReturn">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOIssueReturn" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOIssueReturn_Cancel">
<soap:operation soapAction="http://www.imestech.com/wsMES/MOIssueReturn_Cancel" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ExeMaterialScrap">
<soap:operation soapAction="http://www.imestech.com/wsMES/ExeMaterialScrap" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetERPReferenceNo">
<soap:operation soapAction="http://www.imestech.com/wsMES/GetERPReferenceNo" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addTransactionLog">
<soap:operation soapAction="http://www.imestech.com/wsMES/addTransactionLog" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="wsMESSoap12" type="tns:wsMESSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_TP">
<soap12:operation soapAction="http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_TP" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_TP">
<soap12:operation soapAction="http://www.imestech.com/wsMES/loadWIP_SEMI_MO_TP" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="loadWIP_SEMI_MO_WF">
<soap12:operation soapAction="http://www.imestech.com/wsMES/loadWIP_SEMI_MO_WF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ChkmesStockIn_Lot">
<soap12:operation soapAction="http://www.imestech.com/wsMES/ChkmesStockIn_Lot" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateINVBookingFlag">
<soap12:operation soapAction="http://www.imestech.com/wsMES/updateINVBookingFlag" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_TP">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_TP" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_E10">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_E10" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_Scrap_TP">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_Scrap_TP" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_WF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_Check_WF">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_Check_WF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOStockIn_WF_Cancel">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOStockIn_WF_Cancel" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadWIPInventory_SEMIbyMO_WF">
<soap12:operation soapAction="http://www.imestech.com/wsMES/LoadWIPInventory_SEMIbyMO_WF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadOEMOBasis_byLot_WF">
<soap12:operation soapAction="http://www.imestech.com/wsMES/LoadOEMOBasis_byLot_WF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="UpdOSBasis">
<soap12:operation soapAction="http://www.imestech.com/wsMES/UpdOSBasis" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialStateOP">
<soap12:operation soapAction="http://www.imestech.com/wsMES/LoadMOMaterialStateOP" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="LoadMOMaterialState">
<soap12:operation soapAction="http://www.imestech.com/wsMES/LoadMOMaterialState" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOIssueReturn">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOIssueReturn" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="MOIssueReturn_Cancel">
<soap12:operation soapAction="http://www.imestech.com/wsMES/MOIssueReturn_Cancel" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ExeMaterialScrap">
<soap12:operation soapAction="http://www.imestech.com/wsMES/ExeMaterialScrap" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetERPReferenceNo">
<soap12:operation soapAction="http://www.imestech.com/wsMES/GetERPReferenceNo" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addTransactionLog">
<soap12:operation soapAction="http://www.imestech.com/wsMES/addTransactionLog" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="wsMES">
<wsdl:port name="wsMESSoap" binding="tns:wsMESSoap">
<soap:address location="http://localhost/ERPws_DSC/wsMES.asmx" />
</wsdl:port>
<wsdl:port name="wsMESSoap12" binding="tns:wsMESSoap12">
<soap12:address location="http://localhost/ERPws_DSC/wsMES.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost/ERPws_DSC/TIPTOPServiceGateWay.wsdl" filename="TIPTOPServiceGateWay.wsdl" />
</Results>
</DiscoveryClientResultsFile>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost/ERPws_DSC/TIPTOPServiceGateWay_RPC.wsdl" filename="TIPTOPServiceGateWay.wsdl" />
</Results>
</DiscoveryClientResultsFile>

View File

@ -0,0 +1,180 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.VisualBasic.CompilerServices;
//
// 原始程式碼已由 Microsoft.VSDesigner 自動產生,版本 4.0.30319.42000。
//
namespace AutoRunLib_C.wsERP_WorkFlow
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
[WebServiceBinding(Name = "WFMESServiceSoap", Namespace = "http://tempuri.org/")]
public partial class WFMESService : SoapHttpClientProtocol
{
private System.Threading.SendOrPostCallback XMLAdapterOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
public WFMESService() : base()
{
Url = My.MySettings.Default.AutoRunLib_wsERP_WorkFlow_WFMESService;
if (IsLocalFileSystemWebService(Url) == true)
{
UseDefaultCredentials = true;
useDefaultCredentialsSetExplicitly = false;
}
else
{
useDefaultCredentialsSetExplicitly = true;
}
}
public new string Url
{
get
{
return base.Url;
}
set
{
if (IsLocalFileSystemWebService(base.Url) == true && useDefaultCredentialsSetExplicitly == false && IsLocalFileSystemWebService(value) == false)
{
base.UseDefaultCredentials = false;
}
base.Url = value;
}
}
public new bool UseDefaultCredentials
{
get
{
return base.UseDefaultCredentials;
}
set
{
base.UseDefaultCredentials = value;
useDefaultCredentialsSetExplicitly = true;
}
}
/// <remarks/>
public event XMLAdapterCompletedEventHandler XMLAdapterCompleted;
/// <remarks/>
[SoapDocumentMethod("http://tempuri.org/XMLAdapter", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public string XMLAdapter(string sXML)
{
object[] results = Invoke("XMLAdapter", new object[] { sXML });
return Conversions.ToString(results[0]);
}
/// <remarks/>
public IAsyncResult BeginXMLAdapter(string sXML, AsyncCallback callback, object asyncState)
{
return BeginInvoke("XMLAdapter", new object[] { sXML }, callback, asyncState);
}
/// <remarks/>
public string EndXMLAdapter(IAsyncResult asyncResult)
{
object[] results = EndInvoke(asyncResult);
return Conversions.ToString(results[0]);
}
/// <remarks/>
public void XMLAdapterAsync(string sXML)
{
XMLAdapterAsync(sXML, null);
}
/// <remarks/>
public void XMLAdapterAsync(string sXML, object userState)
{
if (XMLAdapterOperationCompleted == null)
{
XMLAdapterOperationCompleted = OnXMLAdapterOperationCompleted;
}
InvokeAsync("XMLAdapter", new object[] { sXML }, XMLAdapterOperationCompleted, userState);
}
private void OnXMLAdapterOperationCompleted(object arg)
{
if (XMLAdapterCompleted != null)
{
InvokeCompletedEventArgs invokeArgs = (InvokeCompletedEventArgs)arg;
XMLAdapterCompleted?.Invoke(this, new XMLAdapterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState)
{
base.CancelAsync(userState);
}
private bool IsLocalFileSystemWebService(string url)
{
if (url == null || ReferenceEquals(url, string.Empty))
{
return false;
}
var wsUri = new Uri(url);
if (wsUri.Port >= 1024 && string.Compare(wsUri.Host, "localHost", StringComparison.OrdinalIgnoreCase) == 0)
{
return true;
}
return false;
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
public delegate void XMLAdapterCompletedEventHandler(object sender, XMLAdapterCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.8.3761.0")]
[DebuggerStepThrough()]
[DesignerCategory("code")]
public partial class XMLAdapterCompletedEventArgs : AsyncCompletedEventArgs
{
private object[] results;
internal XMLAdapterCompletedEventArgs(object[] results, Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState)
{
this.results = results;
}
/// <remarks/>
public string Result
{
get
{
RaiseExceptionIfNecessary();
return Conversions.ToString(results[0]);
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://10.40.30.73/WFMES/WFMESService.asmx?wsdl" filename="WFMESService.wsdl" />
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://10.40.30.73/WFMES/WFMESService.asmx?disco" filename="WFMESService.disco" />
</Results>
</DiscoveryClientResultsFile>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://10.40.30.73/WFMES/WFMESService.asmx?wsdl" docRef="http://10.40.30.73/WFMES/WFMESService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://10.40.30.73/WFMES/WFMESService.asmx" xmlns:q1="http://tempuri.org/" binding="q1:WFMESServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://10.40.30.73/WFMES/WFMESService.asmx" xmlns:q2="http://tempuri.org/" binding="q2:WFMESServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="XMLAdapter">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="sXML" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="XMLAdapterResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="XMLAdapterResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="string" nillable="true" type="s:string" />
</s:schema>
</wsdl:types>
<wsdl:message name="XMLAdapterSoapIn">
<wsdl:part name="parameters" element="tns:XMLAdapter" />
</wsdl:message>
<wsdl:message name="XMLAdapterSoapOut">
<wsdl:part name="parameters" element="tns:XMLAdapterResponse" />
</wsdl:message>
<wsdl:message name="XMLAdapterHttpGetIn">
<wsdl:part name="sXML" type="s:string" />
</wsdl:message>
<wsdl:message name="XMLAdapterHttpGetOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="XMLAdapterHttpPostIn">
<wsdl:part name="sXML" type="s:string" />
</wsdl:message>
<wsdl:message name="XMLAdapterHttpPostOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:portType name="WFMESServiceSoap">
<wsdl:operation name="XMLAdapter">
<wsdl:input message="tns:XMLAdapterSoapIn" />
<wsdl:output message="tns:XMLAdapterSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="WFMESServiceHttpGet">
<wsdl:operation name="XMLAdapter">
<wsdl:input message="tns:XMLAdapterHttpGetIn" />
<wsdl:output message="tns:XMLAdapterHttpGetOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="WFMESServiceHttpPost">
<wsdl:operation name="XMLAdapter">
<wsdl:input message="tns:XMLAdapterHttpPostIn" />
<wsdl:output message="tns:XMLAdapterHttpPostOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WFMESServiceSoap" type="tns:WFMESServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="XMLAdapter">
<soap:operation soapAction="http://tempuri.org/XMLAdapter" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WFMESServiceSoap12" type="tns:WFMESServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="XMLAdapter">
<soap12:operation soapAction="http://tempuri.org/XMLAdapter" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WFMESServiceHttpGet" type="tns:WFMESServiceHttpGet">
<http:binding verb="GET" />
<wsdl:operation name="XMLAdapter">
<http:operation location="/XMLAdapter" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WFMESServiceHttpPost" type="tns:WFMESServiceHttpPost">
<http:binding verb="POST" />
<wsdl:operation name="XMLAdapter">
<http:operation location="/XMLAdapter" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WFMESService">
<wsdl:port name="WFMESServiceSoap" binding="tns:WFMESServiceSoap">
<soap:address location="http://10.40.30.73/WFMES/WFMESService.asmx" />
</wsdl:port>
<wsdl:port name="WFMESServiceSoap12" binding="tns:WFMESServiceSoap12">
<soap12:address location="http://10.40.30.73/WFMES/WFMESService.asmx" />
</wsdl:port>
<wsdl:port name="WFMESServiceHttpGet" binding="tns:WFMESServiceHttpGet">
<http:address location="http://10.40.30.73/WFMES/WFMESService.asmx" />
</wsdl:port>
<wsdl:port name="WFMESServiceHttpPost" binding="tns:WFMESServiceHttpPost">
<http:address location="http://10.40.30.73/WFMES/WFMESService.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://localhost/MESws_STD/wsInvoke.asmx?wsdl" filename="wsInvoke.wsdl" />
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost/MESws_STD/wsInvoke.asmx?disco" filename="wsInvoke.disco" />
</Results>
</DiscoveryClientResultsFile>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost/MESws_STD/wsInvoke.asmx?wsdl" docRef="http://localhost/MESws_STD/wsInvoke.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost/MESws_STD/wsInvoke.asmx" xmlns:q1="http://www.imestech.com/wsInvoke" binding="q1:wsInvokeSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://localhost/MESws_STD/wsInvoke.asmx" xmlns:q2="http://www.imestech.com/wsInvoke" binding="q2:wsInvokeSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>

View File

@ -0,0 +1,847 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.imestech.com/wsInvoke" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://www.imestech.com/wsInvoke" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.imestech.com/wsInvoke">
<s:element name="invokeSrv">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfAnyType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" />
</s:sequence>
</s:complexType>
<s:element name="invokeSrvResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrvResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_EnableLog">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="1" maxOccurs="1" name="LogOn" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_EnableLogResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_EnableLogResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="inXMl" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_XmlResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_XmlResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml_Session">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="inXMl" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Xml_SessionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_Xml_SessionResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableParameter">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableParameterResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataTableParameterResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTable">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataTableResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataTableResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataTable">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataSet">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="InXml" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_DataSetResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_DataSetResult" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_SessionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_SessionResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session_json">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="metadata" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameter" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session_jsonResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_Session_jsonResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_json">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="uri" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="content" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_jsonResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_jsonResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session_plainjson">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="uri" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="content" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Session_plainjsonResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_Session_plainjsonResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_plainjson">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="uri" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="content" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_plainjsonResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_plainjsonResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Test">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserNo" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invoke_SignalR">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="mseContent" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invoke_SignalRResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invoke_SignalRResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Module">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="0" maxOccurs="1" name="pInvokeType" />
<s:element minOccurs="0" maxOccurs="1" name="pLogKeyFields" type="tns:ArrayOfString" />
<s:element minOccurs="1" maxOccurs="1" name="blnLogOn" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="invokeSrv_ModuleResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_ModuleResult" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Module_DataSet">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="method" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="0" maxOccurs="1" name="pInvokeType" />
<s:element minOccurs="0" maxOccurs="1" name="pLogKeyFields" type="tns:ArrayOfString" />
<s:element minOccurs="1" maxOccurs="1" name="blnLogOn" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="invokeSrv_Module_DataSetResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="invokeSrv_Module_DataSetResult" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfAnyType" />
<s:element minOccurs="0" maxOccurs="1" name="pDataSet">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Invoke_GuardServer_Process">
<s:complexType />
</s:element>
<s:element name="Invoke_GuardServer_ProcessResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Invoke_GuardServer_ProcessResult" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="invokeSrvSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv" />
</wsdl:message>
<wsdl:message name="invokeSrvSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrvResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_EnableLogSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_EnableLog" />
</wsdl:message>
<wsdl:message name="invokeSrv_EnableLogSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_EnableLogResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_XmlSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml" />
</wsdl:message>
<wsdl:message name="invokeSrv_XmlSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_XmlResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_Xml_SessionSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml_Session" />
</wsdl:message>
<wsdl:message name="invokeSrv_Xml_SessionSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_Xml_SessionResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableParameterSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableParameter" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableParameterSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableParameterResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTable" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataTableSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataTableResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataSetSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_DataSet" />
</wsdl:message>
<wsdl:message name="invokeSrv_DataSetSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_DataSetResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_SessionSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Session" />
</wsdl:message>
<wsdl:message name="invokeSrv_SessionSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_SessionResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_Session_jsonSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Session_json" />
</wsdl:message>
<wsdl:message name="invokeSrv_Session_jsonSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_Session_jsonResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_jsonSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_json" />
</wsdl:message>
<wsdl:message name="invokeSrv_jsonSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_jsonResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_Session_plainjsonSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Session_plainjson" />
</wsdl:message>
<wsdl:message name="invokeSrv_Session_plainjsonSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_Session_plainjsonResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_plainjsonSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_plainjson" />
</wsdl:message>
<wsdl:message name="invokeSrv_plainjsonSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_plainjsonResponse" />
</wsdl:message>
<wsdl:message name="TestSoapIn">
<wsdl:part name="parameters" element="tns:Test" />
</wsdl:message>
<wsdl:message name="TestSoapOut">
<wsdl:part name="parameters" element="tns:TestResponse" />
</wsdl:message>
<wsdl:message name="invoke_SignalRSoapIn">
<wsdl:part name="parameters" element="tns:invoke_SignalR" />
</wsdl:message>
<wsdl:message name="invoke_SignalRSoapOut">
<wsdl:part name="parameters" element="tns:invoke_SignalRResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_ModuleSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Module" />
</wsdl:message>
<wsdl:message name="invokeSrv_ModuleSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_ModuleResponse" />
</wsdl:message>
<wsdl:message name="invokeSrv_Module_DataSetSoapIn">
<wsdl:part name="parameters" element="tns:invokeSrv_Module_DataSet" />
</wsdl:message>
<wsdl:message name="invokeSrv_Module_DataSetSoapOut">
<wsdl:part name="parameters" element="tns:invokeSrv_Module_DataSetResponse" />
</wsdl:message>
<wsdl:message name="Invoke_GuardServer_ProcessSoapIn">
<wsdl:part name="parameters" element="tns:Invoke_GuardServer_Process" />
</wsdl:message>
<wsdl:message name="Invoke_GuardServer_ProcessSoapOut">
<wsdl:part name="parameters" element="tns:Invoke_GuardServer_ProcessResponse" />
</wsdl:message>
<wsdl:portType name="wsInvokeSoap">
<wsdl:operation name="invokeSrv">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with objects and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrvSoapIn" />
<wsdl:output message="tns:invokeSrvSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_EnableLog">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with objects and Return XML, And Enable Performance Log</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_EnableLogSoapIn" />
<wsdl:output message="tns:invokeSrv_EnableLogSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with Xml String and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_XmlSoapIn" />
<wsdl:output message="tns:invokeSrv_XmlSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke with Xml String and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_Xml_SessionSoapIn" />
<wsdl:output message="tns:invokeSrv_Xml_SessionSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataTable and Object Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataTableParameterSoapIn" />
<wsdl:output message="tns:invokeSrv_DataTableParameterSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataTable and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataTableSoapIn" />
<wsdl:output message="tns:invokeSrv_DataTableSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke with DataSet and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_DataSetSoapIn" />
<wsdl:output message="tns:invokeSrv_DataSetSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke and Return XML</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_SessionSoapIn" />
<wsdl:output message="tns:invokeSrv_SessionSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_json">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke Web Service Resolved json</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_Session_jsonSoapIn" />
<wsdl:output message="tns:invokeSrv_Session_jsonSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_json">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke Web Service Resolved json</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_jsonSoapIn" />
<wsdl:output message="tns:invokeSrv_jsonSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_plainjson">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">EnableSession, Invoke Web Service Resolved json</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_Session_plainjsonSoapIn" />
<wsdl:output message="tns:invokeSrv_Session_plainjsonSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_plainjson">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke Web Service Resolved json</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_plainjsonSoapIn" />
<wsdl:output message="tns:invokeSrv_plainjsonSoapOut" />
</wsdl:operation>
<wsdl:operation name="Test">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Web service and database connection test</wsdl:documentation>
<wsdl:input message="tns:TestSoapIn" />
<wsdl:output message="tns:TestSoapOut" />
</wsdl:operation>
<wsdl:operation name="invoke_SignalR">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Call SignalR, Invoke and Return XML</wsdl:documentation>
<wsdl:input message="tns:invoke_SignalRSoapIn" />
<wsdl:output message="tns:invoke_SignalRSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke Module with InXml</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_ModuleSoapIn" />
<wsdl:output message="tns:invokeSrv_ModuleSoapOut" />
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module_DataSet">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Invoke Module with InXml and DataSet Parameter</wsdl:documentation>
<wsdl:input message="tns:invokeSrv_Module_DataSetSoapIn" />
<wsdl:output message="tns:invokeSrv_Module_DataSetSoapOut" />
</wsdl:operation>
<wsdl:operation name="Invoke_GuardServer_Process">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">return hysical directory</wsdl:documentation>
<wsdl:input message="tns:Invoke_GuardServer_ProcessSoapIn" />
<wsdl:output message="tns:Invoke_GuardServer_ProcessSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="wsInvokeSoap" type="tns:wsInvokeSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="invokeSrv">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_EnableLog">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_EnableLog" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTable" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataSet" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_json">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session_json" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_json">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_json" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_plainjson">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session_plainjson" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_plainjson">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_plainjson" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Test">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/Test" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invoke_SignalR">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invoke_SignalR" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Module" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module_DataSet">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Module_DataSet" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Invoke_GuardServer_Process">
<soap:operation soapAction="http://www.imestech.com/wsInvoke/Invoke_GuardServer_Process" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="wsInvokeSoap12" type="tns:wsInvokeSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="invokeSrv">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_EnableLog">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_EnableLog" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Xml_Session">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Xml_Session" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTableParameter">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTableParameter" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataTable">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataTable" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_DataSet">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_DataSet" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_json">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session_json" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_json">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_json" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Session_plainjson">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Session_plainjson" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_plainjson">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_plainjson" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Test">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/Test" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invoke_SignalR">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invoke_SignalR" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Module" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="invokeSrv_Module_DataSet">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/invokeSrv_Module_DataSet" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Invoke_GuardServer_Process">
<soap12:operation soapAction="http://www.imestech.com/wsInvoke/Invoke_GuardServer_Process" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="wsInvoke">
<wsdl:port name="wsInvokeSoap" binding="tns:wsInvokeSoap">
<soap:address location="http://localhost/MESws_STD/wsInvoke.asmx" />
</wsdl:port>
<wsdl:port name="wsInvokeSoap12" binding="tns:wsInvokeSoap12">
<soap12:address location="http://localhost/MESws_STD/wsInvoke.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="AutoRunLib_C.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
</appSettings>
<applicationSettings>
<AutoRunLib_C.My.MySettings>
<setting name="AutoRunLib_wsERP_MES_wsMES" serializeAs="String">
<value>http://localhost/ERPws_DSC/wsMES.asmx</value>
</setting>
<setting name="AutoRunLib_wsERP_TP_TIPTOPServiceGateWay" serializeAs="String">
<value>http://10.40.40.30/gas/ws/r/aws_ttsrv2_top2o</value>
</setting>
<setting name="AutoRunLib_wsERP_TP_RPC_TIPTOPServiceGateWay"
serializeAs="String">
<value>http://218.211.164.212:8082/ws/r/aws_ttsrv2_top3o</value>
</setting>
<setting name="AutoRunLib_wsERP_EAI_IntegrationEntry" serializeAs="String">
<value>http://10.40.41.197:9999/IntegrationEntry</value>
</setting>
<setting name="AutoRunLib_wsInvoke_wsInvoke" serializeAs="String">
<value>http://localhost/MESws_STD/wsInvoke.asmx</value>
</setting>
<setting name="AutoRunLib_wsERP_WorkFlow_WFMESService" serializeAs="String">
<value>http://10.40.30.73/WFMES/WFMESService.asmx</value>
</setting>
</AutoRunLib_C.My.MySettings>
</applicationSettings>
</configuration>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,712 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Resources;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.Base.iMESComXML;
using static iMESCore.Base.iMESConst;
namespace AutoRunLib_C
{
static class modAutoRunLibrary
{
public enum GroupType
{
UserGroup = 0, // 使用者群組
IssueGroup = 1, // 簽核群組
EquipmentGroup = 2, // 設備工程師群組
InventoryGroup = 3, // 庫房工程師群組
ReportGroup = 4, // 報表使用群組
ERFDispositionGroup = 5, // 異常處理群組
ERFMailccGroup = 6 // 附件收件人群組
}
private static string InXml, OutXml, strIdentity, strParameter, XmlData, XmlSchema;
#region Invoke
/// <summary>
/// 叫用Web Service, 並回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="Customize">是否客製的WebService</param>
/// <returns></returns>
/// <remarks>
/// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題
/// </remarks>
public static string InvokeSrv(string Method, string InXml, bool Customize = false, int TimeOut = defInteger, bool LogOn = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
if (TimeOut != defInteger)
{
ws.Timeout = TimeOut;
}
result = ws.invokeSrv(Method, new object[] { InXml, LogOn });
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
/// <summary>
/// 叫用Web Service, 回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="buffer">用來取回byte資料或傳入byte資料</param>
/// <param name="Customize">是否客製的WebService</param>
/// <remarks>
/// 2019/08/22 OwenLiu, Mantis:0061402, 修正WS加上CI/CO執行時間紀錄 運作邏輯後AutoRun Servive呼叫WS失敗的問題
/// </remarks>
public static string InvokeSrv(string Method, string InXml, byte[] buffer, bool Customize = false, int TimeOut = defInteger, bool LogOn = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
if (TimeOut != defInteger)
{
ws.Timeout = TimeOut;
}
result = ws.invokeSrv(Method, new object[] { InXml, buffer, LogOn });
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
/// <summary>
/// 叫用Web Service, 並回傳Response XML
/// </summary>
/// <param name="Method">要呼叫哪一個WebService的方法, ex: wsWIP.LoadLotBasis</param>
/// <param name="InXml">InXml</param>
/// <param name="pDataSet">接收結果的DataSet</param>
/// <param name="Customize">是否客製的WebService</param>
/// <returns></returns>
public static string InvokeSrv(string Method, string InXml, ref DataSet pDataSet, bool Customize = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
result = ws.invokeSrv_DataSet(Method, InXml, ref pDataSet);
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
public static string InvokeSrv_GuardServer(bool Customize = false)
{
object result;
try
{
using (var ws = new wsInvoke.wsInvoke())
{
ws.Url = modWIN.LocalizeWebService(ws.Url.ToString(), Customize);
ws.EnableDecompression = true;
result = ws.Invoke_GuardServer_Process();
}
}
catch (Exception ex)
{
throw;
}
return Conversions.ToString(result);
}
#endregion
/// <summary>
/// EAI 檢核編碼(MD5)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string GetRequestKey(string input)
{
const string ID = "28682266"; // 鼎新統編
string key = "";
var md5Hasher = MD5.Create(); // 建立MD5物件
try
{
input += ID;
// 將input轉換成MD5並且以Bytes傳回由於ComputeHash只接受Bytes型別參數所以要先轉型別為Bytes
byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input));
// 建立StringBuilder物件
var sb = new StringBuilder();
// 將Bytes轉型別為String並且以16進位存放
for (int i = 0, loopTo = data.Length - 1; i <= loopTo; i++)
sb.Append(data[i].ToString("x2"));
key = sb.ToString();
}
catch (Exception ex)
{
throw;
}
finally
{
md5Hasher = null;
}
return key;
}
/// <summary>
/// 紀錄Transaction
/// </summary>
/// <param name="InXml"></param>
/// <param name="OutXml"></param>
/// <param name="ModuleID"></param>
/// <param name="FunctionID"></param>
/// <param name="Result"></param>
/// <param name="KeyValue"></param>
/// <returns></returns>
/// <remarks></remarks>
public static bool addTransactionLog(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null)
{
bool addTransactionLogRet = default(bool);
try
{
using (var wsERP = new wsERP_MES.wsMES())
{
wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString());
wsERP.EnableDecompression = true;
if (wsERP.addTransactionLog(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException) == true)
{
addTransactionLogRet = true;
}
else
{
addTransactionLogRet = false;
}
}
}
catch (Exception ex)
{
addTransactionLogRet = false;
}
return addTransactionLogRet;
}
/// <summary>
/// 紀錄Transaction
/// </summary>
public static bool addTransactionLog_ErrorCode(string InXml, string OutXml, string TransactionID, string ModuleID, string FunctionID, string ComputerName, string CurUserNo, string SendTime, string Result, string KeyValue, string ExceptionFun, string strException = null, string ErrorCode = "0000-999999", string LogClass = null)
{
bool addTransactionLog_ErrorCodeRet = default(bool);
try
{
using (var wsERP = new wsERP_MES.wsMES())
{
wsERP.Url = modWIN.LocalizeWebService_ERP(wsERP.Url.ToString());
wsERP.EnableDecompression = true;
if (wsERP.addTransactionLog_ErrorCode(InXml, OutXml, TransactionID, ModuleID, FunctionID, ComputerName, CurUserNo, SendTime, Result, KeyValue, ExceptionFun, ref strException, ErrorCode, LogClass) == true)
{
addTransactionLog_ErrorCodeRet = true;
}
else
{
addTransactionLog_ErrorCodeRet = false;
}
}
}
catch (Exception ex)
{
addTransactionLog_ErrorCodeRet = false;
}
return addTransactionLog_ErrorCodeRet;
}
// =====Elvis ,0091128: [605][CP+FT] E10ICD整合問題_AutoRun主檔拋轉的ERP交易紀錄exception時紀錄不正確
#region --- Combine (Exception, Message) ---
public static bool ChgTranslateException(ref List<ArrayList> Exception, ref string strExceptionSysmsg, ref string strExceptionMesmsg, ref string strExceptionStack)
{
bool ChgTranslateExceptionRet = default(bool);
try
{
foreach (ArrayList al in Exception)
{
// If strExceptionSysmsg <> String.Empty Then strExceptionSysmsg += Chr(10)
if (string.IsNullOrEmpty(Conversions.ToString(al[1])) == false)
strExceptionSysmsg += al[1].ToString();
// If String.IsNullOrEmpty(strExceptionMesmsg) = False Then strExceptionMesmsg += Chr(10)
if (string.IsNullOrEmpty(Conversions.ToString(al[2])) == false)
{
// 翻譯錯誤訊息
string strErrName_Rep = "";
string ErrorName = al[2].ToString();
if (Strings.InStr(ErrorName, "[%", CompareMethod.Text) > 0)
{
string strKey, strKeyValue;
int intStart, j, k, l;
intStart = 1;
j = 1;
while (j != 0)
{
j = Strings.InStr(intStart, ErrorName, "[%", CompareMethod.Text);
if (j == 0)
{
strErrName_Rep += Strings.Mid(ErrorName, intStart);
}
else
{
k = Strings.InStr(j + 2, ErrorName, "%]", CompareMethod.Text);
if (k == 0)
{
// 找不到對應的結束字元.
strErrName_Rep += Strings.Mid(ErrorName, intStart);
j = 0;
}
else
{
// 檢查是否有不對稱的情況.
l = Strings.InStr(j + 2, ErrorName, "[%", CompareMethod.Text);
if (l == 0 || l > k)
{
strErrName_Rep += Strings.Mid(ErrorName, intStart, j - intStart);
strKey = Strings.Mid(ErrorName, j + 2, k - j - 2);
// 將Key執行語系轉換
try
{
strKeyValue = "";
}
// strKeyValue = Resources.Resource.ResourceManager.GetString(strKey)
catch (Exception ex)
{
strKeyValue = strKey;
}
if (string.IsNullOrEmpty(strKeyValue))
{
strErrName_Rep += strKey;
}
else
{
strErrName_Rep += strKeyValue;
} // & "(" & strKey & ")"
// 下次截取字串的起始位置
intStart = k + 2;
}
else
{
// 不對稱,找到最內層的[%%]
int m;
// 在前面的條件下,一定找得到.
m = Strings.InStrRev(ErrorName, "[%", k, CompareMethod.Text);
// 擷出不轉換的字串.
strErrName_Rep += Strings.Mid(ErrorName, intStart, m - intStart);
strKey = Strings.Mid(ErrorName, m + 2, k - m - 2);
// 將Key執行語系轉換
try
{
strKeyValue = "";
}
// strKeyValue = Resources.Resource.ResourceManager.GetString(strKey)
catch (Exception ex)
{
strKeyValue = strKey;
}
if (string.IsNullOrEmpty(strKeyValue))
{
strErrName_Rep += strKey;
}
else
{
strErrName_Rep += strKeyValue;
} // & "(" & strKey & ")"
// 下次截取字串的起始位置
intStart = k + 2;
}
}
}
}
}
// strExceptionMesmsg += Chr(9) & Chr(9) & Chr(9) & Resources.Resource.ResourceManager.GetString(al.Item(2).ToString) & "(" & al.Item(2).ToString & ")"
strExceptionMesmsg += strErrName_Rep;
}
// If strExceptionStack <> String.Empty Then strExceptionStack += Chr(10)
if (string.IsNullOrEmpty(Conversions.ToString(al[3])) == false)
strExceptionStack += al[3].ToString();
}
ChgTranslateExceptionRet = true;
}
catch (Exception e1)
{
throw;
ChgTranslateExceptionRet = false;
}
return ChgTranslateExceptionRet;
}
public static string CombineXMLResponse(string Identity, string ReturnValue = null, List<ArrayList> Exception = null, string Result = null, List<ArrayList> Message = null)
{
string CombineXMLResponseRet = default(string);
try
{
// <response>
CombineXMLResponseRet = "<response>";
// <identity>
if (string.IsNullOrEmpty(Identity))
{
CombineXMLResponseRet += "<identity></identity>";
}
else
{
CombineXMLResponseRet += "<identity>";
CombineXMLResponseRet += Identity;
CombineXMLResponseRet += "</identity>";
}
// <returnvalue>
if (string.IsNullOrEmpty(ReturnValue))
{
CombineXMLResponseRet += "<returnvalue></returnvalue>";
}
else
{
CombineXMLResponseRet += "<returnvalue>";
CombineXMLResponseRet += ReturnValue;
CombineXMLResponseRet += "</returnvalue>";
}
// <result>
if (string.IsNullOrEmpty(Result))
{
CombineXMLResponseRet += "<result></result>";
}
else
{
CombineXMLResponseRet += "<result>" + Result + "</result>";
}
// <exception>
string strExceptionSysmsg = string.Empty;
string strExceptionMesmsg = string.Empty;
string strExceptionStack = string.Empty;
if (Exception.Count == 0)
{
CombineXMLResponseRet += "<exception></exception>";
}
else
{
// 2016-12-01, Joe, Exception轉語系
ChgTranslateException(ref Exception, ref strExceptionSysmsg, ref strExceptionMesmsg, ref strExceptionStack);
CombineXMLResponseRet += "<exception>";
CombineXMLResponseRet += "<code></code>";
if (string.IsNullOrEmpty(strExceptionSysmsg) == true)
{
CombineXMLResponseRet += "<sysmsg></sysmsg>";
}
else
{
CombineXMLResponseRet += "<sysmsg>" + strExceptionSysmsg + '\n' + "</sysmsg>" + '\n';
}
if (string.IsNullOrEmpty(strExceptionMesmsg) == true)
{
CombineXMLResponseRet += "<mesmsg>" + strExceptionMesmsg + "</mesmsg>" + '\n';
}
else
{
CombineXMLResponseRet += "<mesmsg>" + strExceptionMesmsg + "</mesmsg>" + '\n';
}
if (string.IsNullOrEmpty(strExceptionStack))
{
CombineXMLResponseRet += "<stack></stack>";
}
else
{
// CombineXMLResponse += Chr(9) & Chr(9) & "<stack>" & Chr(10) & strExceptionStack & Chr(10) & Chr(9) & Chr(9) & "</stack>" & Chr(10)
CombineXMLResponseRet += "<stack></stack>";
}
CombineXMLResponseRet += '\t' + "</exception>" + '\n';
}
// <message>
string strMmsg = string.Empty;
if (Message.Count == 0)
{
CombineXMLResponseRet += '\t' + "<message></message>" + '\n';
}
else
{
CombineXMLResponseRet += '\t' + "<message>" + '\n';
// 2016-12-01, Joe, Message轉語系
// Call ChgTranslateMessage(Message, strMmsg)
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<mcode></mcode>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<mtype></mtype>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<mmsg>" + strMmsg + "</mmsg>" + '\n';
CombineXMLResponseRet += '\t' + "</message>" + '\n';
}
CombineXMLResponseRet += "</response>" + '\n';
}
catch (Exception e1)
{
// 發生錯誤時丟回本身的Function Name及系統錯誤訊息
// Throw 'New Exception("modWS.CombineXMLResponse: " & e1.Message)
CombineXMLResponseRet = "<response>" + '\n';
CombineXMLResponseRet += '\t' + "<identity></identity>" + '\n';
CombineXMLResponseRet += '\t' + "<exception>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<code></code>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<sysmsg>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + e1.Message + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "</sysmsg>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<mesmsg>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + '\t' + "CombineXMLResponse;Fail" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "</mesmsg>" + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "<stack>" + '\n';
CombineXMLResponseRet += e1.StackTrace + '\n';
CombineXMLResponseRet += Conversions.ToString('\t') + '\t' + "</stack>" + '\n';
CombineXMLResponseRet += '\t' + "</exception>" + '\n';
CombineXMLResponseRet += '\t' + "<message></message>" + '\n';
CombineXMLResponseRet += "</response>";
}
return CombineXMLResponseRet;
}
public static bool combineException(ref List<ArrayList> arrException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null)
{
bool result = false;
try
{
var al = new ArrayList();
al.Add(code);
al.Add(sysmsg);
al.Add(mesmsg);
al.Add(stack);
arrException.Add(al);
result = true;
}
catch (Exception ex)
{
result = false;
}
return default(Boolean);
}
// Public Function combineMessage(
// ByRef strMessage As List(Of ArrayList),
// Optional ByVal mcode As String = Nothing,
// Optional ByVal mtype As String = Nothing,
// Optional ByVal mmsg As String = Nothing
// ) As Boolean
// Dim result As Boolean = False
// Try
// Dim al As New ArrayList
// al.Add(mcode)
// al.Add(mtype)
// al.Add(mmsg)
// strMessage.Add(al)
// result = True
// Catch ex As Exception
// result = False
// End Try
// End Function
#endregion
// =====
// 發Mail功能 非群組與群組發送
public static string SendMultiEmail(ref string FileName, ref string EmailSubject, string EmailBody = defString, string GroupNo = defString, byte[] AttachFile = null, GroupType GroupType = GroupType.UserGroup)
{
string SendMultiEmailRet = default(string);
// GroupType
// 0:User Group (使用者群組)
// 1:Issue Group (簽核群組)
// 2:Equipment Group(設備工程師群組)
// 3:Inventory Group(庫房工程師群組)
// 4:Report Group(報表使用群組)
// 5:ERF Disposition Group(異常處理群組)
// 6:ERF Mail ccGroup(附件收件人群組)
try
{
strIdentity = CombineXMLIdentity(modWIN.gComputerName, "AUTORUN", DateTime.Now.ToString());
strParameter = CombineXMLParameter("groupno", "GroupNo", "String", CInput(GroupNo), "");
strParameter = strParameter + CombineXMLParameter("emailsubject", "EmailSubject", "String", EmailSubject, "");
strParameter = strParameter + CombineXMLParameter("emailbody", "EmailBody", "String", EmailBody, "");
strParameter = strParameter + CombineXMLParameter("grouptype", "GroupType", "Integer", GroupType.ToString(), "");
strParameter = strParameter + CombineXMLParameter("attachfilename", "AttachFileName", "String", FileName, "");
var XmlDoc = new XmlDocument();
InXml = CombineXMLRequest(strIdentity, strParameter);
// OutXml = wsWIP.SendEmailAndAttachFileToGroup(InXml, AttachFile)
OutXml = InvokeSrv("wsWIP.SendEmailAndAttachFileToGroup", InXml, AttachFile);
XmlDoc.LoadXml(OutXml);
if (chkExecutionSuccess(XmlDoc)) // 找出Exception訊並顯示出來
{
SendMultiEmailRet = "success";
}
else
{
SendMultiEmailRet = "fail";
}
XmlDoc = null;
}
catch (Exception ex)
{
SendMultiEmailRet = "fail;" + ex.Message;
}
return SendMultiEmailRet;
}
#region --- ---
public static bool funChkNumericIsValid(string pSourceText, bool AllowFloat = true, bool AllowContainsDot = true, bool AllowZeroValue = true, bool AllowMinus = true)
{
bool blnExecResult = false;
decimal decInputValue = 0m;
try
{
if (!Information.IsNumeric(pSourceText))
{
blnExecResult = false;
return blnExecResult;
}
decInputValue = Convert.ToDecimal(pSourceText);
if (!AllowMinus && decInputValue < 0m)
{
blnExecResult = false;
return blnExecResult;
}
if (!AllowZeroValue && decInputValue == 0m)
{
blnExecResult = false;
return blnExecResult;
}
if (!AllowFloat)
{
if (decInputValue % 1m > 0m)
{
blnExecResult = false;
return blnExecResult;
}
}
if (!AllowContainsDot && !pSourceText.IndexOf(".").Equals(-1))
{
blnExecResult = false;
return blnExecResult;
}
blnExecResult = true;
}
catch (Exception ex)
{
throw;
}
return blnExecResult;
}
#endregion
}
}

View File

@ -0,0 +1,225 @@
using System;
using System.Collections;
using static System.Configuration.ConfigurationSettings;
using System.Data;
using System.Runtime.InteropServices;
using System.Xml;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
namespace AutoRunLib_C
{
static class modWIN
{
// ReviseDate : 2003/08/07,修改處理AdditionalXML
// ReviseDate : 2003/08/05,新增Public gReturnArray
// ReviseDate : 2003/07/01,更改AddFlow產生的Error(CInput)
// ReviseDate : 2002/11/04,新增CUnInput function
public static string gComputerName = System.Environment.MachineName;
public static string gUserNo = "AUTService";
public static string gMESWebServiceHost = GetAppSettings("MesWebServiceHost");
public static string gCUSWebServiceHost = GetAppSettings("CusWebServiceHost");
public static string gERPWebServiceHost = GetAppSettings("ERPWebServiceHost");
public static string gLanguageMode = GetAppSettings("LanguageMode");
// Add By Peter 2005/6/20
public static string gSettingMode = "";
public static string PasswordEncoding(ref string Password)
{
string PasswordEncodingRet = default(string);
// 此 Function 將傳入值加以編碼後傳出,編碼後長度不變
// 傳入值: 密碼
// 傳回值: 編碼後密碼
// Vernam密碼是由Gilbert Vernam在1918年發明的
string g_Key = "xNDFz6LH67LOv7xKbWFpbMu1wejrM7SzvV4tLRvq3X47m708O1xMHLoaMNCqGhoaEN";
string strChar, iCryptChar, strEncrypted = default(string);
int i, iKeyChar, iStringChar;
var loopTo = Strings.Len(Password);
for (i = 1; i <= loopTo; i++)
{
iKeyChar = Strings.Asc(Strings.Mid(g_Key, i, 1));
iStringChar = Strings.Asc(Strings.Mid(Password, i, 1));
iCryptChar = (iKeyChar ^ iStringChar).ToString();
strEncrypted = strEncrypted + Strings.Chr(Conversions.ToInteger(iCryptChar));
}
PasswordEncodingRet = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(strEncrypted));
return PasswordEncodingRet;
}
// 2017-06-05, Joe, 依XML標準定義轉換特殊字元
public static string CInputWithXMLStandard(ref string strInput)
{
string CInputWithXMLStandardRet = default(string);
// 轉換 ' 為 &apos;
CInputWithXMLStandardRet = Strings.Replace(strInput, "'", "&apos;");
// 轉換 & 為 &amp;
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "&", "&amp;");
// 轉換 " 為 quot;
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "\"", "&quot;");
// 轉換 > 為 &gt;
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, ">", "&gt;");
// 轉換 < 為 &lt;
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "<", "&lt;");
return CInputWithXMLStandardRet;
}
// 2017-06-05, Joe, 依XML標準定義反轉換特殊字元
public static string CUnInputWithXMLStandard(ref string strInput)
{
string CUnInputWithXMLStandardRet = default(string);
// 轉換 ' 為 "&apos;"
CUnInputWithXMLStandardRet = Strings.Replace(strInput, "&apos;", "'");
// 轉換 " 為 quot;
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&quot;", "\"");
// 轉換 & 為 &amp;
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&amp;", "&");
// 轉換 > 為 &gt;
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&gt;", ">");
// 轉換 < 為 &lt;
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&lt;", "<");
return CUnInputWithXMLStandardRet;
}
// **Add by py 2003/12/04,Gary Lu 20120911:以MESWin1~Win4的版本進行替換
public static string LocalizeWebService(string wsUrl, bool Customize = false)
{
string[] tmpString;
int i;
tmpString = wsUrl.Split('/');
if (Customize == true)
{
if (!string.IsNullOrEmpty(Strings.Trim(gCUSWebServiceHost)))
{
if (tmpString.Length == 6)
{
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gCUSWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString();
}
else if (tmpString.Length == 5)
{
wsUrl = "http://" + gCUSWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString();
}
}
}
else if (!string.IsNullOrEmpty(Strings.Trim(gMESWebServiceHost)))
{
if (tmpString.Length == 6)
{
// wsUrl = "http://" & gMESWebServiceHost & "/" & tmpString(tmpString.Length - 2).ToString & "/" & tmpString(tmpString.Length - 1).ToString
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gMESWebServiceHost + "/" + tmpString[4].ToString() + "/" + tmpString[5].ToString();
}
else if (tmpString.Length == 5)
{
wsUrl = "http://" + gMESWebServiceHost + "/" + tmpString[tmpString.Length - 1].ToString();
}
}
return wsUrl;
// Have to assume the web service is on the machine that this application came from
} // LocalizeWebService
public static string LocalizeWebService_ERP(string wsUrl)
{
string[] tmpString;
int i;
tmpString = wsUrl.Split('/');
if (!string.IsNullOrEmpty(Strings.Trim(gERPWebServiceHost)))
{
wsUrl = tmpString[0].ToString() + "/" + tmpString[1].ToString() + "/" + gERPWebServiceHost + "/" + tmpString[4].ToString();
}
return wsUrl;
}
// Add By Peter 2005/6/20
public static string GetAppSettings(string key, string section = "")
{
string result = string.Empty;
try
{
if (!string.IsNullOrEmpty(section))
{
result = Conversions.ToString(((Hashtable)GetConfig(section))[key]);
}
else if (string.IsNullOrEmpty(gSettingMode) || string.IsNullOrEmpty(gSettingMode) || gSettingMode.Length == 0)
{
result = AppSettings[key];
}
else
{
Hashtable ht = (Hashtable)GetConfig(gSettingMode);
if (ht != null)
{
result = Conversions.ToString(ht[key]);
if (string.IsNullOrEmpty(result))
{
result = AppSettings[key];
if (string.IsNullOrEmpty(result))
{
result = "";
}
}
}
else
{
result = AppSettings[key];
}
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
public static string GetSubString(string strValue, int intLength)
{
int intLen;
string strReturn;
// Dim byteValue As Byte() = System.Text.Encoding.UTF8.GetBytes(strValue)
// If intLength > byteValue.Length - 1 Then
// intLen = byteValue.Length - 1
// End If
// Dim strReturn As String = System.Text.Encoding.UTF8.GetString(byteValue, 0, intLen)
intLen = (int)Math.Round(Conversion.Int(intLength / 3d));
strReturn = Strings.Left(strValue, intLen);
return strReturn;
}
}
}

View File

@ -0,0 +1,30 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoRunLib_C", "AutoRunLib\AutoRunLib_C.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Debug|x86.Build.0 = Debug|Any CPU
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 2
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
SccLocalPath0 = .
SccProjectUniqueName1 = AutoRunLib\\AutoRunLib_C.vbproj
SccProjectName1 = AutoRunLib
SccLocalPath1 = AutoRunLib
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{74B7676A-6420-0784-301F-696024D2A8D7}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>EAIws_C</RootNamespace>
<AssemblyName>EAIws_C</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\..\MES_S_DLL\</OutputPath>
<DocumentationFile>..\..\..\MES_S_DLL\EAIws_C.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>bin\Release\EAIws_C.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="Apache.NMS, Version=1.7.1.3894, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\Apache.NMS.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESAppSetting, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\iMESAppSetting.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESConst, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\iMESConst.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="iMESCIO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\iMESCIO.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESException, Version=6.0.0.0, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\iMESException.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="tcEAI_C, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\MES_S_DLL\tcEAI_C.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="modEAP.cs" />
<Compile Include="modERP.cs" />
<Compile Include="modERPIntegrate.cs" />
<Compile Include="modKMI.cs" />
<Compile Include="modWS.cs" />
<Compile Include="My Project\AssemblyInfo.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>EAIws_C.My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,11 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 組件的一般資訊是由下列的屬性集控制。
// 變更這些屬性的值即可修改組件的相關
// 資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("EAIws_C")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EAICws")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("968ccd3c-116a-41ae-97a1-bd5dafb45d36")]
// 組件的版本資訊由下列四個值所組成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,88 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System.Diagnostics;
using Microsoft.VisualBasic;
namespace EAIws_C.My
{
[System.Runtime.CompilerServices.CompilerGenerated()]
[System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase
{
private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings());
#region My.Settings
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
#endregion
public static MySettings Default
{
get
{
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
return defaultInstance;
}
}
}
}
namespace EAIws_C.My
{
[HideModuleName()]
[DebuggerNonUserCode()]
[System.Runtime.CompilerServices.CompilerGenerated()]
internal static class MySettingsProperty
{
[System.ComponentModel.Design.HelpKeyword("My.Settings")]
internal static MySettings Settings
{
get
{
return MySettings.Default;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -0,0 +1,28 @@
using System;
using System.Xml;
using Apache.NMS;
using Apache.NMS.Util;
using tcEAI_C;
namespace EAIws_C
{
static class modEAP
{
private static XmlDocument xmlDoc = new XmlDocument(); // 用以讀取Xml字串
private static DateTime ArriveTime; // 送達時間
private static string strIdentity; // Identity XML字串
private static string strReturnValue; // ReturnValue XML字串
private static string strException; // Exception XML字串
private static string strResult; // Result XML字串
private static string strMessage; // Message XML字串
private static object strServiceName = "modEAP";
private static int i = 0;
#region EAP
#endregion
}
}

View File

@ -0,0 +1,120 @@
using System;
using tcEAI_C;
using iMESCore.Settings;
using System.Collections;
using System.Collections.Generic;
using static iMESCore.Base.iMESConst;
namespace EAIws_C
{
static class modERP
{
public static string strService = "ERP";
public static string strDataBaseType;
public static string strConnectionString;
public static string funCreateOperation(string InXml)
{
string funCreateOperationRet = default(string);
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串
string OutXml = null;
string strIdentity = string.Empty; // Identity XML字串
string strResult = "fail"; // Result XML字串
List<ArrayList> strException = new List<ArrayList>(); // Exception XML字串
List<ArrayList> strMessage = new List<ArrayList>(); // Message XML字串
string strKeyValue = string.Empty; // TransactionLot KeyValue
string strMode = string.Empty; // Mode
try
{
try
{
// 讀取InXml字串
xmlDoc.LoadXml(InXml);
}
catch (Exception ex)
{
clsERP.combineException(ref strException, null, ex.Message, "[%InXmlError%]", ex.StackTrace);
goto exitFun;
}
// 組Identity字串
try
{
strIdentity = modWS.CombineXMLIdentity(xmlDoc);
}
catch (Exception ex)
{
clsERP.combineException(ref strException, null, ex.Message, "[%IndentityError%]", ex.StackTrace);
goto exitFun;
}
// 2019/05/09 OwenLiu, Mantis:0057304 作業站整合若資料已存在,
// 且ERP未傳值的狀況 不更新OPType, OPClass, OPShortName, OPOrder
string OPNo = string.Empty;
string OPName = string.Empty;
string OPType = defString;
string PSNo = defString;
int OPClass = defInteger; // Default 0 : General OP
string OPShortName = defString;
int OPOrder = defInteger; // Default 0
string Description = string.Empty;
string Creator = string.Empty;
DateTime CreateDate = DateTime.Now; // Default Today
int PrintOutOnRunCard = 1; // Default 1
double StdUnitRunTime = 0; // Default 0
long CountOpUnitQty = 1; // Default 1
double StdQueueTime = 0; // Default 0
decimal decStdUnitRunTime = defInteger;
decimal decCountOpUnitQty = defInteger;
decimal decStdQueueTime = defInteger;
int OSOption = defInteger;
int OSOptionTemp = defInteger;
string ERPPDLineNo = defString;
// Dim OldERPPDLineNo As String = defString '存放作業站修改前的群組資料
// OPNo
if (xmlDoc.DocumentElement.GetElementsByTagName("opno").Count > 0 && xmlDoc.GetElementsByTagName("opno").Item(0).SelectNodes("value").Count > 0)
OPNo = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opno").Item(0).SelectNodes("value").Item(0).InnerText);
// OPName
if (xmlDoc.DocumentElement.GetElementsByTagName("opname").Count > 0 && xmlDoc.GetElementsByTagName("opname").Item(0).SelectNodes("value").Count > 0)
OPName = modWS.CInput(xmlDoc.DocumentElement.GetElementsByTagName("opname").Item(0).SelectNodes("value").Item(0).InnerText);
// 判斷成功與否
if (strException.Count > 0)
goto exitFun;
strResult = "success";
exitFun:
;
}
catch (Exception ex)
{
clsERP.combineException(ref strException, null, ex.Message, "[%CreateOPFail%]", ex.StackTrace);
}
finally
{
// 將各部份之XML字串組起來並傳出
OutXml = modWS.CombineXMLResponse(strIdentity, null, strException, strResult, strMessage);
funCreateOperationRet = OutXml;
}
return funCreateOperationRet;
}
}
}

View File

@ -0,0 +1,16 @@
using tcEAI_C;
using iMESCore.Settings;
namespace EAIws_C
{
static class modERPIntegrate
{
public static string strService = "ERPIntegrate";
public static string strDataBaseType;
public static string strConnectionString;
}
}

View File

@ -0,0 +1,37 @@
using System;
using System.Xml;
namespace EAIws_C
{
/// <summary>
///
/// </summary>
static class modKMI
{
private static string strService = "KMI";
private static string RequestKey = string.Empty;
private static string AccountID = string.Empty;
private static string SeesionID = string.Empty;
public const string SuccessCode = "0";
public static void GetXMLHeaderNode(XmlDocument xmlDoc)
{
if (xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Count != 0)
{
AccountID = ((XmlElement)xmlDoc.SelectNodes("request").Item(0).SelectNodes("host").Item(0)).GetAttribute("acct");
if (string.IsNullOrEmpty(AccountID))
throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is Empty!"));
}
else
{
throw new Exception("GetXMLHeaderNode fail!", new Exception("acct is not found!"));
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{443394E0-F618-0D60-04C0-E207199604A2}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>tcEAI_C</RootNamespace>
<AssemblyName>tcEAI_C</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\MES_S_DLL\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\tcEAI_C.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>..\..\MES_S_DLL\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\tcEAI_C.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="Apache.NMS, Version=1.7.1.3894, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\Apache.NMS.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\Apache.NMS.ActiveMQ.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="data_access_service, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\data_access_service.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESAppSetting, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESAppSetting.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESComSubroutine, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESComSubroutine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESComXML, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESComXML.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESConst, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESConst.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="iMESCIO">
<HintPath>..\..\MES_S_DLL\iMESCIO.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESDataObject">
<HintPath>..\..\MES_S_DLL\iMESDataObject.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESException">
<HintPath>..\..\MES_S_DLL\iMESException.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="iMESLog, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESLog.dll</HintPath>
</Reference>
<Reference Include="kcMTL">
<HintPath>..\..\MES_S_DLL\kcMTL.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="kcPRD">
<HintPath>..\..\MES_S_DLL\kcPRD.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="kcQC">
<HintPath>..\..\MES_S_DLL\kcQC.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="kcSPC">
<HintPath>..\..\MES_S_DLL\kcSPC.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="udReverse, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\udReverse.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="clsCom.cs" />
<Compile Include="clsEAP.cs" />
<Compile Include="clsERP.cs" />
<Compile Include="clsMDS.cs" />
<Compile Include="clsSPC.cs" />
<Compile Include="My Project\AssemblyInfo.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>tcEAI_C.My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,11 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 組件的一般資訊是由下列的屬性集控制。
// 變更這些屬性的值即可修改組件的相關
// 資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("EAItc_C")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EAItc")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("c6f5bc9b-8482-4694-8df4-0b0a3f7b9707")]
// 組件的版本資訊由下列四個值所組成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,88 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------
using System.Diagnostics;
using Microsoft.VisualBasic;
namespace tcEAI_C.My
{
[System.Runtime.CompilerServices.CompilerGenerated()]
[System.CodeDom.Compiler.GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
internal sealed partial class MySettings : System.Configuration.ApplicationSettingsBase
{
private static MySettings defaultInstance = (MySettings)Synchronized(new MySettings());
#region My.Settings
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
#endregion
public static MySettings Default
{
get
{
/* TODO ERROR: Skipped IfDirectiveTrivia
#If _MyType = "WindowsForms" Then
*//* TODO ERROR: Skipped DisabledTextTrivia
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
*//* TODO ERROR: Skipped EndIfDirectiveTrivia
#End If
*/
return defaultInstance;
}
}
}
}
namespace tcEAI_C.My
{
[HideModuleName()]
[DebuggerNonUserCode()]
[System.Runtime.CompilerServices.CompilerGenerated()]
internal static class MySettingsProperty
{
[System.ComponentModel.Design.HelpKeyword("My.Settings")]
internal static MySettings Settings
{
get
{
return MySettings.Default;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

195
SRC/MESEAI/EAItc/clsCom.cs Normal file
View File

@ -0,0 +1,195 @@
using System;
using System.Reflection;
using Apache.NMS;
using Microsoft.VisualBasic;
namespace tcEAI_C
{
/// <summary>
/// 20211027 13871,共用功能
/// </summary>
public class clsCom
{
/// <summary>
/// 20211027 13871,Reflection方法
/// </summary>
/// <param name="strComponent">DLL Name</param>
/// <param name="strClassName">Class Name</param>
/// <param name="strMethodName">Function Name</param>
/// <param name="mi"></param>
/// <param name="obj"></param>
/// <returns></returns>
public static bool DetermineCustomized_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj)
{
bool DetermineCustomized_ConstructorRet = default(bool);
bool blnResult = false;
DetermineCustomized_ConstructorRet = false;
try
{
blnResult = DetermineMethod_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj);
}
catch (Exception ex)
{
}
finally
{
DetermineCustomized_ConstructorRet = blnResult;
}
return DetermineCustomized_ConstructorRet;
}
/// <summary>
/// 20211027 13871,Reflection找出Method
/// </summary>
public static bool DetermineMethod_Constructor(string strComponent, string strClassName, string strMethodName, ref MethodInfo mi, ref object obj)
{
string strAppBase = AppDomain.CurrentDomain.BaseDirectory;
string strFilePath = "";
Assembly mainAssembly;
Type t;
Type[] argumentTypes;
ConstructorInfo ctor;
MethodInfo[] aryMethos;
try
{
strFilePath = strAppBase.TrimEnd('\\') + @"\bin\" + strComponent;
mainAssembly = Assembly.LoadFrom(strFilePath);
t = mainAssembly.GetType(mainAssembly.GetName().Name + "." + strClassName, true, true);
// 20211211 13871,支援Module
if (t.GetConstructors().Length > 0)
{
argumentTypes = Type.EmptyTypes;
ctor = t.GetConstructor(argumentTypes);
obj = ctor.Invoke(new object[] { });
}
strMethodName = Strings.Replace(strMethodName, ".", "_");
aryMethos = t.GetMethods();
foreach (MethodInfo item in aryMethos)
{
if ((strMethodName.ToUpper() ?? "") == (item.Name.ToUpper() ?? ""))
{
mi = item;
return true;
}
}
if (mi == null)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 20211027 13871,取得Method的參數預設值陣列
/// </summary>
/// <param name="strComponent">DLL Name,可不傳副檔名,會自動補.dll</param>
/// <param name="strClassName">Class Name</param>
/// <param name="strMethodName">Method Name</param>
/// <returns></returns>
public static object[] funGetMethodParameters(string strComponent, string strClassName, string strMethodName)
{
object[] funGetMethodParametersRet = default(object[]);
try
{
var mi = default(MethodInfo);
var obj = default(object);
if (!strComponent.ToUpper().Contains(".DLL"))
{
strComponent = strComponent + ".dll";
}
if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj))
{
throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]");
}
int iParameterLength = mi.GetParameters().Length;
var aryParameter = new object[iParameterLength];
for (int i = 0, loopTo = mi.GetParameters().Length - 1; i <= loopTo; i++)
aryParameter[i] = mi.GetParameters()[i].DefaultValue;
funGetMethodParametersRet = aryParameter;
}
catch (Exception ex)
{
throw;
}
return funGetMethodParametersRet;
}
/// <summary>
/// 20211027 13871,執行指定DLL、Class、Method,無法執行多載Method
/// </summary>
/// <param name="strComponent">DLL Name,可不傳副檔名,會自動補.dll</param>
/// <param name="strClassName">Class Name</param>
/// <param name="strMethodName">Method Name</param>
/// <param name="aryParameters"></param>
public static object funExecuteMethod(string strComponent, string strClassName, string strMethodName, ref object[] aryParameters)
{
object funExecuteMethodRet = default(object);
try
{
var mi = default(MethodInfo);
var obj = default(object);
if (!strComponent.ToUpper().Contains(".DLL"))
{
strComponent = strComponent + ".dll";
}
if (!DetermineCustomized_Constructor(strComponent, strClassName, strMethodName, ref mi, ref obj))
{
throw new iMESException.MESException("0000-200003", strComponent + "." + strClassName + "," + strMethodName + " [%METHOD%] [%NOT FOUND%]");
}
funExecuteMethodRet = mi.Invoke(obj, aryParameters);
}
catch (Exception ex)
{
ex = funGetRealException(ex);
throw ex;
}
return funExecuteMethodRet;
}
// 20211208 13871,從clsEAP移植
public static Exception funGetRealException(Exception ex)
{
Exception funGetRealExceptionRet = default(Exception);
try
{
funGetRealExceptionRet = ex;
if (ex is TargetInvocationException && ex.InnerException != null)
{
funGetRealExceptionRet = funGetRealException(ex.InnerException);
}
}
catch (Exception ex2)
{
throw;
}
return funGetRealExceptionRet;
}
}
}

View File

@ -0,0 +1,99 @@
using System;
using System.Data;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.Base.iMESConst;
using static iMESCore.Base.iMESComXML;
using static iMESCore.Base.iMESComSubroutine;
namespace tcEAI_C
{
public class clsEAP
{
public static string strDataBaseType;
public static string strConnectionString;
#region EAP
#endregion
#region ConbineXMLFunction
public static string CombineXMLRequest_AutoExecutionLot(string InXml, string functionid, string computername, DataTable dtLotInfo, string OPNo, string CurUserNo, string SendTime, bool blnRuleChk = true)
{
string CombineXMLRequest_AutoExecutionLotRet = default(string);
string strLotXML = "<lotinfo>";
string strLotNoColumnName = "";
if (dtLotInfo.Columns.Contains("Lot_ID"))
{
strLotNoColumnName = "Lot_ID";
}
else if (dtLotInfo.Columns.Contains("LotNo"))
{
strLotNoColumnName = "LotNo";
}
string strrulecheckTag = "";
if (!blnRuleChk)
{
strrulecheckTag = "<chkrule>false</chkrule>";
}
foreach (DataRow drTemp in dtLotInfo.Rows)
strLotXML = Conversions.ToString(strLotXML + Operators.ConcatenateObject(Operators.ConcatenateObject("<value><lotno>", drTemp[strLotNoColumnName]), "</lotno></value>"));
strLotXML += "</lotinfo>";
CombineXMLRequest_AutoExecutionLotRet = "" + "<request><identity> " + "<transactionid>" + Strings.Format(DateTime.Now, "yyyyMMddHHmmssfff") + "</transactionid>" + "<functionid>" + functionid + "</functionid>" + strLotXML + "<computername>" + computername + "</computername>" + "<opno>" + OPNo + "</opno>" + "<curuserno>" + CurUserNo + "</curuserno>" + "<sendtime>" + SendTime + "</sendtime>" + strrulecheckTag + "</identity>" + "<datainfo>" + InXml + "</datainfo>" + "</request>";
return CombineXMLRequest_AutoExecutionLotRet;
}
#endregion
#region ReverseTriggerOP
public static bool ExeReverseTriggerOP_NotUseUndo(string pUserNo, string pLotNo, string pLotSerial = defString, int pLotStamp = defInteger, string ComputreName = "EAI")
{
string InXml, OutXml, strIdentity, strParameter;
bool blnExecResult = false;
// 2020/3/17 Ning, Mantis: 0068960, WIP_Kit 增加ExeReverseTriggerOP_NotUseUndo共用函式
try
{
// 檢查此 BR 是否此站第一次執行若是第一次執行則以刪除Temp, Cont, LotLog...的方式取消Trigger OP的動作
strIdentity = CombineXMLIdentity(ComputreName, pUserNo, DateTime.Now.ToString(defDateTimeFormat));
strParameter = CombineXMLParameter("lotno", "LotNo", "String", CInput(pLotNo), "");
// 因FormLoad不見得會成功取得Lot的資料,有可能失敗,故使用變數來決定是否傳出參數.
if ((pLotSerial ?? "") != defString)
{
strParameter += CombineXMLParameter("lotserial", "LotSerial", "String", CInput(pLotSerial), "");
}
if (pLotStamp != defInteger)
{
strParameter += CombineXMLParameter("lotstamp", "LotStamp", "Long", pLotStamp.ToString(), "");
}
InXml = CombineXMLRequest(strIdentity, strParameter);
// OutXml = InvokeSrv("wsWIP.ReverseTriggerOP_NotUseUndo", InXml)
object[] aryPars = clsCom.funGetMethodParameters("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo");
aryPars[0] = InXml;
OutXml = clsCom.funExecuteMethod("wsSTD", "wsWIP", "ReverseTriggerOP_NotUseUndo", ref aryPars) as string;
blnExecResult = true;
}
catch (Exception ex)
{
}
return blnExecResult;
}
#endregion
}
}

View File

@ -0,0 +1,74 @@
using System;
using System.Collections;
using System.Collections.Generic;
namespace tcEAI_C
{
public class clsERP
{
#region --- Combine (Exception, Message) ---
public static bool combineException(ref List<ArrayList> strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null)
{
bool result = false;
try
{
var al = new ArrayList();
al.Add(code);
al.Add(sysmsg);
al.Add(mesmsg);
al.Add(stack);
strException.Add(al);
result = true;
}
catch (Exception ex)
{
result = false;
}
return default(bool);
}
public static bool combineMessage(ref List<ArrayList> strMessage, string mcode = null, string mtype = null, string mmsg = null)
{
bool result = false;
try
{
var al = new ArrayList();
al.Add(mcode);
al.Add(mtype);
al.Add(mmsg);
strMessage.Add(al);
result = true;
}
catch (Exception ex)
{
result = false;
}
return default(bool);
}
public static bool combineFileMessage(ref List<ArrayList> aryFileMessage, string mmsg)
{
bool result = false;
try
{
var al = new ArrayList();
al.Add(mmsg);
aryFileMessage.Add(al);
result = true;
}
catch (Exception ex)
{
result = false;
}
return result;
}
#endregion
}
}

View File

@ -0,0 +1,25 @@

namespace tcEAI_C
{
public class clsMDS
{
public string strDataBaseType;
public string strConnectionString;
private udReverse.clsReverse objReverse = new udReverse.clsReverse();
// 2003/03/22,sammi.
// 因TC可能呼叫KC,在整個Function中,必須要使用同一個Reverse物件,如此在產生AddReverseUpdateContent的資料時,ReverseOrder才不會重覆.
// 若KC再往下呼叫UD,則必須將Reverse物件傳遞予UD.
public udReverse.clsReverse ReverseObj
{
get
{
return objReverse;
}
}
}
}

View File

@ -0,0 +1,62 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using Microsoft.VisualBasic;
namespace tcEAI_C
{
public class clsSPC
{
public static string strDataBaseType;
public static string strConnectionString;
private string Filepath_E = @"D:\Log\EAI_TC\"; // 指定Log
public void SaveLog(string msg)
{
if (!Directory.Exists(Filepath_E))
{
Directory.CreateDirectory(Filepath_E);
}
//{
// var withBlock = My.MyProject.Application.Log.DefaultFileLogWriter;
// // If CInt(Format(Now, "mm")) >= 20 And CInt(Format(Now, "mm")) < 40 Then
// // .BaseFileName = "Log" & "_20" 'Log檔的檔名
// // ElseIf CInt(Format(Now, "mm")) >= 40 Then
// // .BaseFileName = "Log" & "_40" 'Log檔的檔名
// // Else
// withBlock.BaseFileName = "Log"; // & Format(Now, "mm") 'Log檔的檔名
// // End If
// withBlock.CustomLocation = Filepath_E; // 自訂Log檔的存放路徑
// withBlock.AutoFlush = true; // Log檔寫完後自動清除緩衝
// withBlock.LogFileCreationSchedule = Microsoft.VisualBasic.Logging.LogFileCreationScheduleOption.Daily; // 設定一天產生一個Log檔
// withBlock.MaxFileSize = long.MaxValue; // 預設容量5M 改為 最大容量
//}
//My.MyProject.Application.Log.WriteEntry(string.Format("{0} {1}", Strings.Format(DateTime.Now, "yy/MM/dd HH:mm:ss ffff,"), msg));
}
public void combineException(ref List<ArrayList> strException, string code = null, string sysmsg = null, string mesmsg = null, string stack = null)
{
bool result = false;
try
{
var al = new ArrayList();
al.Add(code);
al.Add(sysmsg);
al.Add(mesmsg);
al.Add(stack);
strException.Add(al);
result = true;
}
catch (Exception ex)
{
result = false;
}
}
}
}

156
SRC/MESEAI/MESEAI.sln Normal file
View File

@ -0,0 +1,156 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAIws_C", "EAICws\EAICws\EAIws_C.csproj", "{74B7676A-6420-0784-301F-696024D2A8D7}"
ProjectSection(ProjectDependencies) = postProject
{443394E0-F618-0D60-04C0-E207199604A2} = {443394E0-F618-0D60-04C0-E207199604A2}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EAItc_C", "EAItc\EAItc_C.csproj", "{443394E0-F618-0D60-04C0-E207199604A2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
C++Buile|Any CPU = C++Buile|Any CPU
C++Buile|Mixed Platforms = C++Buile|Mixed Platforms
C++Buile|x64 = C++Buile|x64
C++Buile|x86 = C++Buile|x86
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Quick|Any CPU = Quick|Any CPU
Quick|Mixed Platforms = Quick|Mixed Platforms
Quick|x64 = Quick|x64
Quick|x86 = Quick|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x64 = Release|x64
Release|x86 = Release|x86
StorageBuild|Any CPU = StorageBuild|Any CPU
StorageBuild|Mixed Platforms = StorageBuild|Mixed Platforms
StorageBuild|x64 = StorageBuild|x64
StorageBuild|x86 = StorageBuild|x86
UnitTest|Any CPU = UnitTest|Any CPU
UnitTest|Mixed Platforms = UnitTest|Mixed Platforms
UnitTest|x64 = UnitTest|x64
UnitTest|x86 = UnitTest|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Any CPU.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x64.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.C++Buile|x86.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.ActiveCfg = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x64.Build.0 = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.ActiveCfg = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Debug|x86.Build.0 = Debug|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Any CPU.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|Mixed Platforms.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x64.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Quick|x86.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|Any CPU.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|x64.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.Release|x86.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Any CPU.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x64.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.StorageBuild|x86.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Any CPU.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x64.Build.0 = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.ActiveCfg = Release|Any CPU
{74B7676A-6420-0784-301F-696024D2A8D7}.UnitTest|x86.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Any CPU.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|Mixed Platforms.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x64.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.C++Buile|x86.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.ActiveCfg = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|x64.Build.0 = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.ActiveCfg = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Debug|x86.Build.0 = Debug|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|Any CPU.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|Mixed Platforms.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|x64.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Quick|x86.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|Any CPU.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|x64.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.Release|x86.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Any CPU.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|Mixed Platforms.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x64.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.StorageBuild|x86.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Any CPU.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|Mixed Platforms.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x64.Build.0 = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.ActiveCfg = Release|Any CPU
{443394E0-F618-0D60-04C0-E207199604A2}.UnitTest|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8C4647D6-0300-48B8-9394-09E4BF0D878A}
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 3
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
SccLocalPath0 = .
SccProjectUniqueName1 = EAICws\\EAICws\\EAIws_C.vbproj
SccProjectName1 = EAICws/EAICws
SccLocalPath1 = EAICws\\EAICws
SccProjectUniqueName2 = EAItc\\EAItc_C.vbproj
SccProjectName2 = EAItc
SccLocalPath2 = EAItc
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MESPI_BusinessRule</RootNamespace>
<AssemblyName>MESPI_BusinessRule</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<TargetFrameworkProfile />
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\MES_S_DLL\plugin\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\plugin\MESPI_BusinessRule.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>bin\Release\
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>iMES.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="iMESCIO, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESCIO.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="clsBusinessRule.cs" />
<Compile Include="clsGetFunctionBR.cs" />
<Compile Include="My Project\AssemblyInfo.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="iMES.snk" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>MESPI_BusinessRule.My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,30 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_BusinessRule", "MESPI_BusinessRule.csproj", "{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CD932DD-93B6-0C5E-06F9-47F39C95CB5A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 2
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
SccLocalPath0 = .
SccProjectUniqueName1 = MESPI_BusinessRule.vbproj
SccLocalPath1 = .
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,10 @@
""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT"
}

View File

@ -0,0 +1,11 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 組件的一般資訊是由下列的屬性集控制。
// 變更這些屬性的值即可修改組件的相關
// 資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("MESPI_BusinessRule")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MESPI_BusinessRule")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("ad5034de-f368-4373-8f98-36aec3edf64e")]
// 組件的版本資訊由下列四個值所組成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("6.0.0.0")]
[assembly: AssemblyFileVersion("6.0.0.0")]

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace MESPI_BusinessRule.My {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -0,0 +1,16 @@
using iMESCIO.PIO.Plugin;
using Microsoft.VisualBasic;
namespace MESPI_BusinessRule
{
public class clsBusinessRule : IBusinessRule
{
private string funBR_Test(Collection colParameters)
{
return "Pass";
}
}
}

View File

@ -0,0 +1,96 @@
using System;
using System.Data;
using System.IO;
using System.Linq;
using System.Reflection;
using iMESCIO.PIO.Plugin;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
namespace MESPI_BusinessRule
{
public class clsGetFunctionBR : ICommonPlugin
{
public string PlugInPoint
{
get
{
return "wsOP.LoadBRFunctionName";
}
}
public object AfterExecut(params object[] Parameters)
{
string strAppBase = AppDomain.CurrentDomain.BaseDirectory;
string strFilePath = strAppBase.TrimEnd('\\') + @"\Plugin\BusinessRule";
Assembly mainAssembly;
MethodInfo[] MyMethodInfos;
string strFunction;
string strResult = "";
try
{
foreach (string file in Directory.GetFiles(strFilePath))
{
if (new System.IO.FileInfo(file).Extension.ToUpper() != ".DLL")
{
continue;
}
mainAssembly = Assembly.LoadFrom(file);
foreach (Type item in mainAssembly.GetTypes())
{
var InterfaceTemp = item.GetInterfaces().Where(x => (x.Name ?? "") == (typeof(IBusinessRule).Name.ToString() ?? "")).FirstOrDefault();
if (InterfaceTemp == null == false)
{
MyMethodInfos = item.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance);
for (int i = 0, loopTo = MyMethodInfos.Length - 1; i <= loopTo; i++)
{
strFunction = MyMethodInfos[i].Name;
if (Conversions.ToBoolean(Strings.InStr(strFunction.ToUpper(), "FUNBR")))
{
strResult += "<functionname>" + "<name>FunctionName</name>" + "<type>String</type>" + "<schema></schema>" + "<value>" + strFunction + "</value>" + "<desc></desc>" + "<filename>" + new System.IO.FileInfo(file).Name + "</filename>" + "</functionname>";
}
}
}
}
}
}
catch (Exception ex)
{
throw;
}
finally
{
mainAssembly = null;
MyMethodInfos = null;
}
return strResult;
}
public object BeforeExecut(ref bool paramIsCancel, params object[] Parameters)
{
throw new NotImplementedException();
}
}
}

Binary file not shown.

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>
</SchemaVersion>
<ProjectGuid>{F9051601-B027-0745-17C2-D36A87ABB6A1}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>MESPI_WIP</RootNamespace>
<AssemblyName>MESPI_WIP</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Windows</MyType>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\MES_S_DLL\plugin\WIP\</OutputPath>
<DocumentationFile>..\..\MES_S_DLL\plugin\WIP\MESPI_WIP.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>bin\Release\MESPI_WIP.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="iMESException, Version=6.0.0.0, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\iMESException.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="iMESLog">
<HintPath>..\..\MES_S_DLL\iMESLog.dll</HintPath>
</Reference>
<Reference Include="kcPRD, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\MES_S_DLL\kcPRD.dll</HintPath>
</Reference>
<Reference Include="kcWIP">
<HintPath>..\..\MES_S_DLL\kcWIP.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Diagnostics" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\AssemblyInfo.cs" />
<Compile Include="My Project\Application.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.cs</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>MESPI_WIP.My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,32 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MESPI_WIP", "MESPI_WIP.csproj", "{F9051601-B027-0745-17C2-D36A87ABB6A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9051601-B027-0745-17C2-D36A87ABB6A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9051601-B027-0745-17C2-D36A87ABB6A1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 1
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
SccProjectUniqueName0 = MESPI_WIP.csproj
SccProjectName0 = .
SccAuxPath0 = http://tfs.imestech.com:8080/tfs/messeries6
SccLocalPath0 = .
SccProvider0 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,11 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// 這段程式碼是由工具產生的。
// 執行階段版本:4.0.30319.42000
//
// 對這個檔案所做的變更可能會造成錯誤的行為,而且如果重新產生程式碼,
// 變更將會遺失。
// </auto-generated>
// ------------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>false</MySubMain>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>1</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
// 組件的一般資訊是由下列的屬性集控制。
// 變更這些屬性的值即可修改組件的相關
// 資訊。
// 檢閱組件屬性的值
[assembly: AssemblyTitle("MESPI_WIP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MESPI_WIP")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
[assembly: Guid("438509c2-63aa-45a9-955b-b76a4ad092ac")]
// 組件的版本資訊是由下列四項值構成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Some files were not shown because too many files have changed in this diff Show More