autorun 模板
This commit is contained in:
parent
8defb91e77
commit
98f8fb4b2d
30
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/AssemblyInfo.cs
Normal file
30
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/AssemblyInfo.cs
Normal 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")]
|
380
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/AutoRunLib.csproj
Normal file
380
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/AutoRunLib.csproj
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
<?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</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</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.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, 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="iMESChart_HtmlHandler">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESChart_HtmlHandler.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESComInvoke">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESComInvoke.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="Ionic.Zip, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\Ionic.Zip.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualBasic" />
|
||||||
|
<Reference Include="GuardServerProvider, Version=0.9.0.0, Culture=neutral, PublicKeyToken=3ad2cfbf6a289680, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\GuardServerProvider.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="NPOI, Version=2.5.5.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.5.5.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.5.5.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.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\NPOI.OpenXmlFormats.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\Oracle.ManagedDataAccess.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.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<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>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="My Project\Settings.settings">
|
||||||
|
<CustomToolNamespace>AutoRunLib.My</CustomToolNamespace>
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<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_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" />
|
||||||
|
<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://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>
|
||||||
|
<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>
|
||||||
|
<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>
|
@ -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" = "PROVIDER"
|
||||||
|
}
|
658
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/EAIMessageSynchronizer.cs
Normal file
658
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/EAIMessageSynchronizer.cs
Normal file
@ -0,0 +1,658 @@
|
|||||||
|
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
|
||||||
|
{
|
||||||
|
|
||||||
|
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 iMESCore.Base.Invoke.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(funGetParameterValue(objEAIResult, "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:外包回貨單,8:MES發料
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 20230207,13871,部分函式存取Object obj的成員,但此obj可能有多種型別故使用此方式取的值
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="obj"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static object funGetParameterValue(object obj, string key)
|
||||||
|
{
|
||||||
|
object result = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Type t = obj.GetType();
|
||||||
|
System.Reflection.PropertyInfo p = t.GetProperty(key);
|
||||||
|
if (p != null)
|
||||||
|
{
|
||||||
|
result = p.GetValue(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
using COM_ERP.clsCommon;
|
||||||
|
using COM_ERP.clsWorkFlow;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersion("6.0.7.30207")]
|
161
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/My Project/Settings.Designer.cs
generated
Normal file
161
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/My Project/Settings.Designer.cs
generated
Normal 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.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://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"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.Configuration.ApplicationScopedSetting()]
|
||||||
|
[DebuggerNonUserCode()]
|
||||||
|
[System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||||
|
[System.Configuration.DefaultSettingValue("http://localhost/605EAI/wsMES.asmx")]
|
||||||
|
public string AutoRunLib_wsERP_MES_wsMES
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Conversions.ToString(this["AutoRunLib_wsERP_MES_wsMES"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace AutoRunLib.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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_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>
|
||||||
|
<Setting Name="AutoRunLib_wsERP_MES_wsMES" Type="(Web Service URL)" Scope="Application">
|
||||||
|
<Value Profile="(Default)">http://localhost/605EAI/wsMES.asmx</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
File diff suppressed because it is too large
Load Diff
@ -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
File diff suppressed because it is too large
Load Diff
@ -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>
|
File diff suppressed because it is too large
Load Diff
@ -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.wsERP_WorkFlow
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.6.1087.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.6.1087.0")]
|
||||||
|
public delegate void XMLAdapterCompletedEventHandler(object sender, XMLAdapterCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCode("System.Web.Services", "4.6.1087.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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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>
|
@ -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>
|
@ -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>
|
35
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/app.config
Normal file
35
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/app.config
Normal 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.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
|
||||||
|
<appSettings>
|
||||||
|
|
||||||
|
</appSettings>
|
||||||
|
<applicationSettings>
|
||||||
|
<AutoRunLib.My.MySettings>
|
||||||
|
<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>
|
||||||
|
<setting name="AutoRunLib_wsERP_MES_wsMES" serializeAs="String">
|
||||||
|
<value>http://localhost/605EAI/wsMES.asmx</value>
|
||||||
|
</setting>
|
||||||
|
</AutoRunLib.My.MySettings>
|
||||||
|
</applicationSettings>
|
||||||
|
</configuration>
|
49468
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/clsAutoRunLibrary.cs
Normal file
49468
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/clsAutoRunLibrary.cs
Normal file
File diff suppressed because it is too large
Load Diff
899
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/modAutoRunLibrary.cs
Normal file
899
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/modAutoRunLibrary.cs
Normal file
@ -0,0 +1,899 @@
|
|||||||
|
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;
|
||||||
|
using NPOI.SS.UserModel;
|
||||||
|
using NPOI.SS.Util;
|
||||||
|
using NPOI.XSSF.UserModel;
|
||||||
|
using NPOI.HSSF.UserModel;
|
||||||
|
using static iMESCore.Base.iMESComSubroutine;
|
||||||
|
|
||||||
|
namespace AutoRunLib
|
||||||
|
{
|
||||||
|
|
||||||
|
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 iMESCore.Base.Invoke.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 iMESCore.Base.Invoke.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 iMESCore.Base.Invoke.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 iMESCore.Base.Invoke.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 iMESCore.Base.Invoke.wsMES.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 iMESCore.Base.Invoke.wsMES.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", ((int)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
|
||||||
|
|
||||||
|
|
||||||
|
public static byte[] funExcelToByte(DataSet dsResult, String ExcelMode, String strLanguageMode, String strResourceDir)
|
||||||
|
{
|
||||||
|
var memStream = new MemoryStream();
|
||||||
|
IWorkbook workbook = null;
|
||||||
|
int title = 0;
|
||||||
|
byte[] membyte;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 匯出Excel再轉Stream
|
||||||
|
if (ExcelMode == "XLSX")
|
||||||
|
{
|
||||||
|
workbook = new XSSFWorkbook();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
workbook = new HSSFWorkbook();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a new worksheet
|
||||||
|
ISheet worksheet = workbook.CreateSheet("Sheet1");
|
||||||
|
|
||||||
|
// Add the TSSAVE data table to the worksheet
|
||||||
|
IRow headerRow = worksheet.CreateRow(0);
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i <= dsResult.Tables[0].Columns.Count - 1; i++)
|
||||||
|
{
|
||||||
|
string strLanguage = dsResult.Tables[0].Columns[i].ToString();
|
||||||
|
strLanguage = TranslateMsg("[%" + strLanguage + "%]", strLanguageMode, strResourceDir); //語系翻譯
|
||||||
|
headerRow.CreateCell(i).SetCellValue(strLanguage);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i <= dsResult.Tables[0].Rows.Count - 1; i++)
|
||||||
|
{
|
||||||
|
IRow dataRow = worksheet.CreateRow(i + 1);
|
||||||
|
|
||||||
|
|
||||||
|
for (int j = 0; j <= dsResult.Tables[0].Columns.Count - 1; j++)
|
||||||
|
{
|
||||||
|
var objdsResultType = dsResult.Tables[0].Rows[i][j].GetType();
|
||||||
|
dataRow.CreateCell(j);
|
||||||
|
if (!Convert.IsDBNull(dsResult.Tables[0].Rows[i][j]))
|
||||||
|
{
|
||||||
|
dataRow.CreateCell(j).SetCellValue(dsResult.Tables[0].Rows[i][j].ToString());
|
||||||
|
}
|
||||||
|
else if (objdsResultType.Name == "DateTime")
|
||||||
|
{
|
||||||
|
DateTime datedsTemp = DateTime.Parse(dsResult.Tables[0].Rows[i][j].ToString());
|
||||||
|
dataRow.CreateCell(j).SetCellValue(datedsTemp);
|
||||||
|
}
|
||||||
|
else if (objdsResultType.Name == "Decimal")
|
||||||
|
{
|
||||||
|
decimal amount;
|
||||||
|
amount = Convert.ToDecimal(dsResult.Tables[0].Rows[i][j].ToString());
|
||||||
|
dataRow.CreateCell(j).SetCellValue((double)amount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dataRow.CreateCell(j).SetCellValue(dsResult.Tables[0].Rows[i][j].ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//.抓取值
|
||||||
|
IRow SelectRow = worksheet.GetRow(i);
|
||||||
|
ICell SelectCell = SelectRow.GetCell(j);
|
||||||
|
//Style處理
|
||||||
|
if (i == 0)
|
||||||
|
title = 1;
|
||||||
|
else
|
||||||
|
title = 0;
|
||||||
|
funCellStyleClone(workbook, SelectCell, title, ExcelMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Columns 寬度
|
||||||
|
for (int i = 0; i <= dsResult.Tables[0].Columns.Count - 1; i++)
|
||||||
|
{
|
||||||
|
worksheet.AutoSizeColumn(i);
|
||||||
|
}
|
||||||
|
////debug 用
|
||||||
|
//var fileStream = File.Create($"{DateTime.Now.ToString("HHmmss")}.xlsx");
|
||||||
|
//FileStream fs = new FileStream(@"c:\test.xlsx", FileMode.Create);
|
||||||
|
//workbook.Write(fs);
|
||||||
|
//fs.Close();
|
||||||
|
////
|
||||||
|
|
||||||
|
workbook.Write(memStream);
|
||||||
|
membyte = memStream.ToArray();
|
||||||
|
return membyte;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
workbook?.Close();
|
||||||
|
memStream.Close();
|
||||||
|
memStream.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public static void funCellStyleClone(IWorkbook Workbook, ICell SourceCell, int title, String ExcelMode)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ICellStyle CellStyle = Workbook.CreateCellStyle();
|
||||||
|
IFont CellFont = Workbook.CreateFont();
|
||||||
|
if (title == 1)
|
||||||
|
{
|
||||||
|
CellStyle.BorderLeft = BorderStyle.None;
|
||||||
|
CellStyle.BorderRight = BorderStyle.None;
|
||||||
|
CellStyle.BorderTop = BorderStyle.None;
|
||||||
|
if (ExcelMode == "XLSX")
|
||||||
|
{
|
||||||
|
XSSFColor xssfColor = new XSSFColor();
|
||||||
|
byte[] colorRgb = { (byte)192, (byte)192, (byte)255 };
|
||||||
|
xssfColor.SetRgb(colorRgb);
|
||||||
|
((XSSFCellStyle)CellStyle).FillForegroundColorColor = xssfColor;
|
||||||
|
((XSSFCellStyle)CellStyle).FillPattern = FillPattern.SolidForeground;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CellStyle.FillForegroundColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
CellStyle.FillBackgroundColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
|
||||||
|
}
|
||||||
|
CellStyle.FillPattern = FillPattern.SolidForeground;
|
||||||
|
CellStyle.BorderBottom = BorderStyle.None;
|
||||||
|
CellStyle.Alignment = HorizontalAlignment.Center;
|
||||||
|
SourceCell.CellStyle = CellStyle;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CellStyle.BorderLeft = BorderStyle.Thin;
|
||||||
|
CellStyle.BorderRight = BorderStyle.Thin;
|
||||||
|
CellStyle.BorderTop = BorderStyle.Thin;
|
||||||
|
CellStyle.BorderBottom = BorderStyle.Thin;
|
||||||
|
if (ExcelMode == "XLSX")
|
||||||
|
{
|
||||||
|
XSSFColor xssfColor = new XSSFColor();
|
||||||
|
byte[] colorRgb = { (byte)192, (byte)192, (byte)255 };
|
||||||
|
xssfColor.SetRgb(colorRgb);
|
||||||
|
((XSSFCellStyle)CellStyle).SetTopBorderColor(xssfColor);
|
||||||
|
((XSSFCellStyle)CellStyle).SetRightBorderColor(xssfColor);
|
||||||
|
((XSSFCellStyle)CellStyle).SetLeftBorderColor(xssfColor);
|
||||||
|
((XSSFCellStyle)CellStyle).SetBottomBorderColor(xssfColor);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CellStyle.LeftBorderColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
CellStyle.RightBorderColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
CellStyle.TopBorderColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
CellStyle.BottomBorderColor = (((HSSFWorkbook)Workbook).GetCustomPalette().FindSimilarColor((byte)192, (byte)192, (byte)255)).Indexed;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CellStyle.FillPattern = FillPattern.SolidForeground;
|
||||||
|
CellStyle.Alignment = HorizontalAlignment.Left;
|
||||||
|
SourceCell.CellStyle = CellStyle;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文字
|
||||||
|
|
||||||
|
CellFont.FontHeightInPoints = 9;
|
||||||
|
//CellFont.Boldweight = StyleFon.Boldweight;
|
||||||
|
//CellFont.Charset = StyleFon.Charset;
|
||||||
|
//CellFont.Color = StyleFon.Color;
|
||||||
|
//CellFont.FontHeight = 9;
|
||||||
|
//CellFont.FontHeightInPoints = StyleFon.FontHeightInPoints;
|
||||||
|
//CellFont.FontName = StyleFon.FontName;
|
||||||
|
//CellFont.IsItalic = StyleFon.IsItalic;
|
||||||
|
//CellFont.IsStrikeout = StyleFon.IsStrikeout;
|
||||||
|
//CellFont.Underline = StyleFon.Underline;
|
||||||
|
|
||||||
|
CellStyle.SetFont(CellFont);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
234
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/modWIN.cs
Normal file
234
SRC/MESAgent/MESAutoRun_STD/AutoRunLib/modWIN.cs
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
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
|
||||||
|
{
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
//新增gEnableSSL配置参数
|
||||||
|
public static bool gEnableSSL = Convert.ToBoolean(GetAppSettings("EnableSSL"));
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
// 轉換 ' 為 '
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'");
|
||||||
|
|
||||||
|
// 轉換 & 為 &
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "&", "&");
|
||||||
|
|
||||||
|
// 轉換 " 為 quot;
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "\"", """);
|
||||||
|
|
||||||
|
// 轉換 > 為 >
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, ">", ">");
|
||||||
|
|
||||||
|
// 轉換 < 為 <
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "<", "<");
|
||||||
|
return CInputWithXMLStandardRet;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2017-06-05, Joe, 依XML標準定義反轉換特殊字元
|
||||||
|
public static string CUnInputWithXMLStandard(ref string strInput)
|
||||||
|
{
|
||||||
|
string CUnInputWithXMLStandardRet = default(string);
|
||||||
|
|
||||||
|
// 轉換 ' 為 "'"
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'");
|
||||||
|
|
||||||
|
// 轉換 " 為 quot;
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, """, "\"");
|
||||||
|
|
||||||
|
// 轉換 & 為 &
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&", "&");
|
||||||
|
|
||||||
|
// 轉換 > 為 >
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, ">", ">");
|
||||||
|
|
||||||
|
// 轉換 < 為 <
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "<", "<");
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gEnableSSL)
|
||||||
|
{
|
||||||
|
wsUrl = wsUrl.Replace("http://", "https://");
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
if (gEnableSSL)
|
||||||
|
{
|
||||||
|
wsUrl = wsUrl.Replace("http://", "https://");
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
104
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.Designer.cs
generated
Normal file
104
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.Designer.cs
generated
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.ServiceProcess;
|
||||||
|
|
||||||
|
namespace AutoRunService
|
||||||
|
{
|
||||||
|
|
||||||
|
[Microsoft.VisualBasic.CompilerServices.DesignerGenerated()]
|
||||||
|
public partial class AutoRunService : ServiceBase
|
||||||
|
{
|
||||||
|
|
||||||
|
// UserService 覆寫 Dispose 以清除元件清單。
|
||||||
|
[DebuggerNonUserCode()]
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (disposing && components != null)
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 處理序的主要進入點
|
||||||
|
[MTAThread()]
|
||||||
|
[DebuggerNonUserCode()]
|
||||||
|
public static void Main()
|
||||||
|
{
|
||||||
|
ServiceBase[] ServicesToRun;
|
||||||
|
|
||||||
|
// 在同一個處理序中可以執行多個 NT 服務。若要在這個處理序中
|
||||||
|
// 加入另一項服務,請修改下行程式碼,
|
||||||
|
// 以建立第二個服務物件。例如,
|
||||||
|
//
|
||||||
|
// ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
|
||||||
|
//
|
||||||
|
ServicesToRun = new ServiceBase[] { new AutoRunService() };
|
||||||
|
//RunInteractive(ServicesToRun); //debug
|
||||||
|
Run(ServicesToRun);
|
||||||
|
}
|
||||||
|
private static void RunInteractive(ServiceBase[] servicesToRun)
|
||||||
|
{
|
||||||
|
var onStartMethod = typeof(ServiceBase).GetMethod("OnStart", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||||
|
|
||||||
|
foreach (ServiceBase service in servicesToRun)
|
||||||
|
{
|
||||||
|
Console.Write("Starting {0}...", service.ServiceName);
|
||||||
|
onStartMethod.Invoke(service, new object[] { new string[] { } });
|
||||||
|
Console.Write("Started");
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("Press any key to stop the services");
|
||||||
|
Console.ReadKey();
|
||||||
|
var onStopMethod = typeof(ServiceBase).GetMethod("OnStop", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
|
||||||
|
|
||||||
|
foreach (ServiceBase service in servicesToRun)
|
||||||
|
{
|
||||||
|
Console.Write("Stopping {0}...", service.ServiceName);
|
||||||
|
onStopMethod.Invoke(service, null);
|
||||||
|
Console.WriteLine("Stopped");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 為元件設計工具的必要項
|
||||||
|
private System.ComponentModel.IContainer components;
|
||||||
|
|
||||||
|
// 注意: 以下為元件設計工具的所需的程序
|
||||||
|
// 您可以使用元件設計工具進行修改。
|
||||||
|
// 請不要使用程式碼編輯器進行修改。
|
||||||
|
[DebuggerStepThrough()]
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
TimerCheckJobList = new System.Timers.Timer();
|
||||||
|
TimerCheckJobList.Elapsed += new System.Timers.ElapsedEventHandler(TimerCheckJobList_Elapsed);
|
||||||
|
TimerCheckQueue = new System.Timers.Timer();
|
||||||
|
TimerCheckQueue.Elapsed += new System.Timers.ElapsedEventHandler(TimerCheckQueue_Elapsed);
|
||||||
|
((System.ComponentModel.ISupportInitialize)TimerCheckJobList).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)TimerCheckQueue).BeginInit();
|
||||||
|
//
|
||||||
|
// TimerCheckJobList
|
||||||
|
//
|
||||||
|
TimerCheckJobList.Interval = 300000.0d;
|
||||||
|
//
|
||||||
|
// TimerCheckQueue
|
||||||
|
//
|
||||||
|
TimerCheckQueue.Interval = 60000.0d;
|
||||||
|
//
|
||||||
|
// AutoRunService
|
||||||
|
//
|
||||||
|
ServiceName = "MES AutoRun Service";
|
||||||
|
((System.ComponentModel.ISupportInitialize)TimerCheckJobList).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)TimerCheckQueue).EndInit();
|
||||||
|
|
||||||
|
}
|
||||||
|
internal System.Timers.Timer TimerCheckJobList;
|
||||||
|
internal System.Timers.Timer TimerCheckQueue;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
1204
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.cs
Normal file
1204
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.cs
Normal file
File diff suppressed because it is too large
Load Diff
272
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.csproj
Normal file
272
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.csproj
Normal file
@ -0,0 +1,272 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.50727</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{1D8229EF-DEED-0C6F-1A45-76DD01FBF457}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<StartupObject>AutoRunService.AutoRunService</StartupObject>
|
||||||
|
<RootNamespace>AutoRunService</RootNamespace>
|
||||||
|
<AssemblyName>AutoRunService</AssemblyName>
|
||||||
|
<MyType>Console</MyType>
|
||||||
|
<SccProjectName>SAK</SccProjectName>
|
||||||
|
<SccLocalPath>SAK</SccLocalPath>
|
||||||
|
<SccAuxPath>SAK</SccAuxPath>
|
||||||
|
<SccProvider>SAK</SccProvider>
|
||||||
|
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||||
|
<FileUpgradeFlags>
|
||||||
|
</FileUpgradeFlags>
|
||||||
|
<OldToolsVersion>2.0</OldToolsVersion>
|
||||||
|
<UpgradeBackupLocation />
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
|
<PublishUrl>D:\Temp\MESSeries6\AutoRunService\</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>1</ApplicationRevision>
|
||||||
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
|
<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>..\..\..\MESClient\AutoRunServiceInstall\</OutputPath>
|
||||||
|
<DocumentationFile>..\..\..\MESClient\AutoRunServiceInstall\AutoRunService.xml</DocumentationFile>
|
||||||
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\..\..\MESClient\AutoRunServiceInstall\</OutputPath>
|
||||||
|
<DocumentationFile>..\..\..\MESClient\AutoRunServiceInstall\
|
||||||
|
</DocumentationFile>
|
||||||
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355</NoWarn>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestCertificateThumbprint>BB1E0A6C038D360CE4BE9723ABC415D99A432E73</ManifestCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestKeyFile>
|
||||||
|
</ManifestKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateManifests>true</GenerateManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignManifests>true</SignManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<NoWin32Manifest>true</NoWin32Manifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="AutoRunLib, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\AutoRunLib.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="data_access_service">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\data_access_service.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESAppSetting">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESAppSetting.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESChart_HtmlHandler">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESChart_HtmlHandler.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESComInvoke">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESComInvoke.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESComSubroutine">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESComSubroutine.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESComXML">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESComXML.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESConst">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESConst.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Ionic.Zip, Version=1.9.1.5, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\Ionic.Zip.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualBasic" />
|
||||||
|
<Reference Include="GuardServerProvider">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\GuardServerProvider.dll</HintPath>
|
||||||
|
</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>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESDAO">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESDAO.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESDataObject">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESDataObject.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESProjectBase">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESProjectBase.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="iMESLicxManager">
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\iMESLicxManager.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI, Version=2.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\NPOI.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OOXML, Version=2.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\NPOI.OOXML.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OpenXml4Net, Version=2.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\NPOI.OpenXml4Net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="NPOI.OpenXmlFormats, Version=2.5.5.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_C_DLL\NPOI.OpenXmlFormats.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\MES_S_DLL\Oracle.ManagedDataAccess.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.configuration" />
|
||||||
|
<Reference Include="System.Configuration.Install" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.EnterpriseServices" />
|
||||||
|
<Reference Include="System.ServiceProcess" />
|
||||||
|
<Reference Include="System.Web.Extensions" />
|
||||||
|
<Reference Include="System.Web.Services" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</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="modAutoRun.cs" />
|
||||||
|
<Compile Include="modWIN.cs" />
|
||||||
|
<Compile Include="My Project\Application.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Application.myapp</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AutoRunService.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AutoRunService.Designer.cs">
|
||||||
|
<DependentUpon>AutoRunService.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="My Project\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="My Project\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProjectInstaller.Designer.cs">
|
||||||
|
<DependentUpon>ProjectInstaller.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ProjectInstaller.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="AutoRunService.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<DependentUpon>AutoRunService.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="ProjectInstaller.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<DependentUpon>ProjectInstaller.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="AutoRunService_TemporaryKey.pfx" />
|
||||||
|
<None Include="Install_x64.bat">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Include="Install_x86.bat">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<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>AutoRunService.My</CustomToolNamespace>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<None Include="ReplicationTableList.config">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Include="Uninstall_x64.bat">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Include="Uninstall_x86.bat">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<WebReferences Include="Web References\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="安裝說明.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4 %28x86 和 x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
|
<Install>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Windows Installer 4.5</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\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>
|
||||||
|
-->
|
||||||
|
<Import Project="..\..\..\MESWin\shared file\MakeVersion_CS.targets" Condition="exists('..\..\..\MESWin\shared file\MakeVersion_CS.targets')" />
|
||||||
|
</Project>
|
@ -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" = "PROVIDER"
|
||||||
|
}
|
129
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.resx
Normal file
129
SRC/MESAgent/MESAutoRun_STD/AutoRunService/AutoRunService.resx
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="TimerCheckJobList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 56</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TimerCheckQueue.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
Binary file not shown.
@ -0,0 +1,3 @@
|
|||||||
|
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "%~dp0AutoRunService.exe"
|
||||||
|
|
||||||
|
Pause
|
@ -0,0 +1,3 @@
|
|||||||
|
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "%~dp0AutoRunService.exe"
|
||||||
|
|
||||||
|
Pause
|
11
SRC/MESAgent/MESAutoRun_STD/AutoRunService/My Project/Application.Designer.cs
generated
Normal file
11
SRC/MESAgent/MESAutoRun_STD/AutoRunService/My Project/Application.Designer.cs
generated
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -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>3</ApplicationType>
|
||||||
|
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||||
|
</MyApplicationData>
|
@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 一般的組件資訊是由下列這組屬性所控制。
|
||||||
|
// 變更這些屬性的值即可修改組件的相關資訊。
|
||||||
|
// 檢閱組件屬性的值
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle("AutoRunService")]
|
||||||
|
[assembly: AssemblyDescription("AutoRunService 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("88779103-B613-42AE-9368-24C38D3E131A")]
|
||||||
|
|
||||||
|
// 組件的版本資訊由下列四個值所組成:
|
||||||
|
//
|
||||||
|
// 主要版本
|
||||||
|
// 次要版本
|
||||||
|
// 組建編號
|
||||||
|
// 修訂
|
||||||
|
//
|
||||||
|
// 您可以自行指定所有的值,也可以依照以下的方式,使用 '*' 將修訂和組建編號
|
||||||
|
// 指定為預設值:
|
||||||
|
|
||||||
|
[assembly: AssemblyVersion("6.0.0.0")]
|
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersion("6.0.7.30207")]
|
@ -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>
|
101
SRC/MESAgent/MESAutoRun_STD/AutoRunService/My Project/Settings.Designer.cs
generated
Normal file
101
SRC/MESAgent/MESAutoRun_STD/AutoRunService/My Project/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System.Diagnostics;
|
||||||
|
using Microsoft.VisualBasic;
|
||||||
|
using Microsoft.VisualBasic.CompilerServices;
|
||||||
|
|
||||||
|
|
||||||
|
namespace AutoRunService.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_STD/wsInvoke.asmx")]
|
||||||
|
public string AutoRunService_wsInvoke_wsInvoke
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Conversions.ToString(this["AutoRunService_wsInvoke_wsInvoke"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace AutoRunService.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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="AutoRunService_wsInvoke_wsInvoke" Type="(Web Service URL)" Scope="Application">
|
||||||
|
<Value Profile="(Default)">http://localhost/MESws_STD/wsInvoke.asmx</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
89
SRC/MESAgent/MESAutoRun_STD/AutoRunService/ProjectInstaller.Designer.cs
generated
Normal file
89
SRC/MESAgent/MESAutoRun_STD/AutoRunService/ProjectInstaller.Designer.cs
generated
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
using System.Diagnostics;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
namespace AutoRunService
|
||||||
|
{
|
||||||
|
[System.ComponentModel.RunInstaller(true)]
|
||||||
|
public partial class ProjectInstaller : System.Configuration.Install.Installer
|
||||||
|
{
|
||||||
|
|
||||||
|
// Installer 覆寫 Dispose 以清除元件清單。
|
||||||
|
[DebuggerNonUserCode()]
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (disposing && components != null)
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 為元件設計工具的必要項
|
||||||
|
private System.ComponentModel.IContainer components;
|
||||||
|
|
||||||
|
// 注意: 以下為元件設計工具所需的程序
|
||||||
|
// 您可以使用元件設計工具進行修改。
|
||||||
|
// 請不要使用程式碼編輯器進行修改。
|
||||||
|
[DebuggerStepThrough()]
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
_ServiceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
|
||||||
|
_ServiceInstaller1 = new System.ServiceProcess.ServiceInstaller();
|
||||||
|
//
|
||||||
|
// ServiceProcessInstaller1
|
||||||
|
//
|
||||||
|
_ServiceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
|
||||||
|
_ServiceProcessInstaller1.Password = null;
|
||||||
|
_ServiceProcessInstaller1.Username = null;
|
||||||
|
//
|
||||||
|
// ServiceInstaller1
|
||||||
|
//
|
||||||
|
_ServiceInstaller1.DisplayName = "MES AutoRun Service";
|
||||||
|
_ServiceInstaller1.ServiceName = "MES AutoRun Service";
|
||||||
|
//
|
||||||
|
// ProjectInstaller
|
||||||
|
//
|
||||||
|
Installers.AddRange(new System.Configuration.Install.Installer[] { _ServiceProcessInstaller1, _ServiceInstaller1 });
|
||||||
|
|
||||||
|
}
|
||||||
|
private System.ServiceProcess.ServiceProcessInstaller _ServiceProcessInstaller1;
|
||||||
|
|
||||||
|
internal virtual System.ServiceProcess.ServiceProcessInstaller ServiceProcessInstaller1
|
||||||
|
{
|
||||||
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _ServiceProcessInstaller1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_ServiceProcessInstaller1 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private System.ServiceProcess.ServiceInstaller _ServiceInstaller1;
|
||||||
|
|
||||||
|
internal virtual System.ServiceProcess.ServiceInstaller ServiceInstaller1
|
||||||
|
{
|
||||||
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _ServiceInstaller1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_ServiceInstaller1 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
namespace AutoRunService
|
||||||
|
{
|
||||||
|
|
||||||
|
public partial class ProjectInstaller
|
||||||
|
{
|
||||||
|
|
||||||
|
public ProjectInstaller() : base()
|
||||||
|
{
|
||||||
|
|
||||||
|
// 此為元件設計工具所需的呼叫。
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
// 在呼叫 InitializeComponent 之後加入初始化程式碼
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
129
SRC/MESAgent/MESAutoRun_STD/AutoRunService/ProjectInstaller.resx
Normal file
129
SRC/MESAgent/MESAutoRun_STD/AutoRunService/ProjectInstaller.resx
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<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" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</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>
|
||||||
|
<metadata name="ServiceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 56</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="ServiceInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
@ -0,0 +1,4 @@
|
|||||||
|
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "%~dp0AutoRunService.exe" -u
|
||||||
|
|
||||||
|
|
||||||
|
Pause
|
@ -0,0 +1,3 @@
|
|||||||
|
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "%~dp0AutoRunService.exe" -u
|
||||||
|
|
||||||
|
Pause
|
128
SRC/MESAgent/MESAutoRun_STD/AutoRunService/app.config
Normal file
128
SRC/MESAgent/MESAutoRun_STD/AutoRunService/app.config
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
<?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="AutoRunService.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<appSettings>
|
||||||
|
|
||||||
|
<!-- 資料庫連結字串 -->
|
||||||
|
<!--記錄Database 是oracle或是mssql -->
|
||||||
|
<add key="DatabaseType" value="oracle"/>
|
||||||
|
<add key="DatabaseOwner" value="MESSERIES"/>
|
||||||
|
<add key="ConnectionString" value="Provider=OraOleDB.Oracle;Data Source=ORCL;User ID=MESSERIES"/>
|
||||||
|
<add key="DatabasePassword" value="==wQ5hTP"/>
|
||||||
|
<!-- SQL Server
|
||||||
|
<add key="ConnectionString" value="Provider=SQLOLEDB;Data Source=IMS13;Initial Catalog=MESSERIES;User Id=MESSERIES"/>
|
||||||
|
-->
|
||||||
|
<!-- Report相關資料 -->
|
||||||
|
<add key="ReportDatabaseType" value="oracle"/>
|
||||||
|
<add key="ReportDatabaseOwner" value="MESSERIES"/>
|
||||||
|
<add key="ReportConnectionString" value="Provider=OraOleDB.Oracle;Data Source=ORCL;User ID=MESSERIES"/>
|
||||||
|
<add key="ReportDatabasePassword" value="==wQ5hTP"/>
|
||||||
|
|
||||||
|
<!-- EDC相關資料 -->
|
||||||
|
<add key="TestDataDatabaseType" value="oracle" />
|
||||||
|
<add key="TestDataDatabaseOwner" value="MESEDC" />
|
||||||
|
<add key="TestDataDatabasePassword" value="=cVUvRXSS50KPNFb6N2d5kjUnZlS" />
|
||||||
|
<add key="TestDataConnectionString" value="Provider=OraOleDb.Oracle;User ID=MESEDC;Data Source=EDCDB;" />
|
||||||
|
|
||||||
|
<!-- Other ERP相關資料 -->
|
||||||
|
<!--add key="ERPDatabaseType" value="informix" /-->
|
||||||
|
<!--add key="ERPDatabaseOwner" value="SSC" /-->
|
||||||
|
<!--add key="ERPConnectionString" value="Dsn=SQL2005;uid=sa" /-->
|
||||||
|
<!--add key="ERPDatabasePassword" value="==wQ5hTP" /-->
|
||||||
|
|
||||||
|
<!-- Other ERP相關資料 -->
|
||||||
|
<!-- ERPDB 預設 T100 整合項目 -->
|
||||||
|
<add key="ERPDatabaseType" value="oracle"/>
|
||||||
|
<add key="ERPDatabaseOwner" value="MESSERIES_T100"/>
|
||||||
|
<add key="ERPDatabasePassword" value="RhUN6RGMzhUZINXP"/>
|
||||||
|
<add key="ERPConnectionString" value="Provider=OraOleDB.Oracle;Data Source=ORCL;User ID=MESSERIES_T100"/>
|
||||||
|
|
||||||
|
<!-- ERP相關設定 -->
|
||||||
|
<!-- Default Web Service Exception Value -->
|
||||||
|
<add key="defWSErrCode" value="0000-999999"/>
|
||||||
|
<!-- Default Web Service Message Value-->
|
||||||
|
<add key="defMSGCode" value="0000-000000"/>
|
||||||
|
<add key="defMSGType" value="MES"/>
|
||||||
|
<!-- Default OPType -->
|
||||||
|
<add key="defOPType" value="ERP"/>
|
||||||
|
<!-- Default PSNo -->
|
||||||
|
<add key="defPSNo" value="ERP"/>
|
||||||
|
<!-- Defautl FactoryNo -->
|
||||||
|
<add key="defFactoryNo" value="ERP"/>
|
||||||
|
<!-- Default MO and MO Material List -->
|
||||||
|
<add key="defMOTypeNo" value="0"/>
|
||||||
|
<add key="defMOPriority" value="99"/>
|
||||||
|
<add key="defMOPlanFinishDate" value="10"/>
|
||||||
|
<add key="defMOListMaterialLevel" value="0"/>
|
||||||
|
<add key="defMOListOPNo" value="LOTCREATE"/>
|
||||||
|
<add key="defMOListPutInPlaceType" value="3"/>
|
||||||
|
<add key="defMOListDecreaseRate" value="0"/>
|
||||||
|
<add key="defMOListSpecified" value="0"/>
|
||||||
|
<add key="defMOListCountWay" value="0"/>
|
||||||
|
<add key="defERPUnitNoProperty" value="ERPUnitNo"/>
|
||||||
|
<add key="defCreator" value="ERP"/>
|
||||||
|
|
||||||
|
<!-- Web Services -->
|
||||||
|
<add key="MesWebServiceHost" value="localhost/MESws_STD_6033"/>
|
||||||
|
<add key="CusWebServiceHost" value="localhost/MESws_Cust"/>
|
||||||
|
<add key="ERPWebServiceHost" value="localhost/ERPws_DSC"/>
|
||||||
|
<add key="ERFCreator" value="870658"/>
|
||||||
|
|
||||||
|
<!-- 語系 zh-cht(繁體)、zh-chs(簡體)、en(英文)-->
|
||||||
|
<add key="LanguageMode" value="zh-cht"/>
|
||||||
|
<add key="ClientSettingsProvider.ServiceUri" value=""/>
|
||||||
|
|
||||||
|
<!-- 取回JOB LIST 到 JOB QUEUE的時間間隔(單位:秒) -->
|
||||||
|
<add key="MonitorjoblistDuration" value="30"/>
|
||||||
|
<!-- 到JOB QUEUE 檢查是否有要執行的job的時間間隔(單位:秒) -->
|
||||||
|
<add key="MonitorQueueDuration" value="17" />
|
||||||
|
<!-- 新增EnableSSL配置参数 -->
|
||||||
|
<add key="EnableSSL" value="False"/>
|
||||||
|
</appSettings>
|
||||||
|
<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>
|
||||||
|
<system.web>
|
||||||
|
<membership defaultProvider="ClientAuthenticationMembershipProvider">
|
||||||
|
<providers>
|
||||||
|
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri=""/>
|
||||||
|
</providers>
|
||||||
|
</membership>
|
||||||
|
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
|
||||||
|
<providers>
|
||||||
|
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400"/>
|
||||||
|
</providers>
|
||||||
|
</roleManager>
|
||||||
|
</system.web>
|
||||||
|
<applicationSettings>
|
||||||
|
<AutoRunService.My.MySettings>
|
||||||
|
<setting name="AutoRunService_wsInvoke_wsInvoke" serializeAs="String">
|
||||||
|
<value>http://internal.imestech.com/MESws_STD_6033/wsInvoke.asmx</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="AutoRunService_wsERP_MES_wsMES" serializeAs="String">
|
||||||
|
<value>http://localhost/MESEAI_DSC/wsMES.asmx</value>
|
||||||
|
</setting>
|
||||||
|
</AutoRunService.My.MySettings>
|
||||||
|
</applicationSettings>
|
||||||
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/></startup></configuration>
|
90
SRC/MESAgent/MESAutoRun_STD/AutoRunService/modAutoRun.cs
Normal file
90
SRC/MESAgent/MESAutoRun_STD/AutoRunService/modAutoRun.cs
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using Microsoft.VisualBasic;
|
||||||
|
using Microsoft.VisualBasic.CompilerServices;
|
||||||
|
using AutoRunLib;
|
||||||
|
|
||||||
|
namespace AutoRunService
|
||||||
|
{
|
||||||
|
static class modAutoRun
|
||||||
|
{
|
||||||
|
|
||||||
|
// Dim objLic As New iMESLicxManager.clsDBCom
|
||||||
|
|
||||||
|
public static int gIntCurrentJobCount;
|
||||||
|
public static DateTime dateStartTime;
|
||||||
|
public static string gStatus; // 目前是否起動AutoRun
|
||||||
|
public static DataSet dsJobQueue = new DataSet();
|
||||||
|
public static DataSet dsJob = new DataSet();
|
||||||
|
// Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。
|
||||||
|
// Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。
|
||||||
|
// Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。
|
||||||
|
|
||||||
|
// Public ConnectionString As String = objLic.GetConnectionString 'app.config要設連線字串
|
||||||
|
public const int cJobList2Queue = 30; // 每隔30秒鐘, 取回一次JOB LIST 到 JOB QUEUE
|
||||||
|
public const int cCheckQueue = 17; // 每隔17秒鐘,到 JOB QUEUE 檢查是否有要執行的
|
||||||
|
public static int gIntMaxRunningJobCount = 5; // 最大允許同時執行數量
|
||||||
|
|
||||||
|
|
||||||
|
public class SomeStateType
|
||||||
|
{
|
||||||
|
public string strJobNo;
|
||||||
|
public string strCommandName;
|
||||||
|
public void SomeState(string strJN, string strCN)
|
||||||
|
{
|
||||||
|
strJobNo = strJN;
|
||||||
|
strCommandName = strCN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool PrevInstance()
|
||||||
|
{
|
||||||
|
if (Information.UBound(Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)) > 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#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 iMESCore.Base.Invoke.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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
232
SRC/MESAgent/MESAutoRun_STD/AutoRunService/modWIN.cs
Normal file
232
SRC/MESAgent/MESAutoRun_STD/AutoRunService/modWIN.cs
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
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 AutoRunService
|
||||||
|
{
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
//新增gEnableSSL配置参数
|
||||||
|
public static bool gEnableSSL = Convert.ToBoolean(GetAppSettings("EnableSSL"));
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
// 轉換 ' 為 '
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'");
|
||||||
|
|
||||||
|
// 轉換 & 為 &
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "&", "&");
|
||||||
|
|
||||||
|
// 轉換 " 為 quot;
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "\"", """);
|
||||||
|
|
||||||
|
// 轉換 > 為 >
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, ">", ">");
|
||||||
|
|
||||||
|
// 轉換 < 為 <
|
||||||
|
CInputWithXMLStandardRet = Strings.Replace(CInputWithXMLStandardRet, "<", "<");
|
||||||
|
return CInputWithXMLStandardRet;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2017-06-05, Joe, 依XML標準定義反轉換特殊字元
|
||||||
|
public static string CUnInputWithXMLStandard(ref string strInput)
|
||||||
|
{
|
||||||
|
string CUnInputWithXMLStandardRet = default(string);
|
||||||
|
|
||||||
|
// 轉換 ' 為 "'"
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(strInput, "'", "'");
|
||||||
|
|
||||||
|
// 轉換 " 為 quot;
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, """, "\"");
|
||||||
|
|
||||||
|
// 轉換 & 為 &
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "&", "&");
|
||||||
|
|
||||||
|
// 轉換 > 為 >
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, ">", ">");
|
||||||
|
|
||||||
|
// 轉換 < 為 <
|
||||||
|
CUnInputWithXMLStandardRet = Strings.Replace(CUnInputWithXMLStandardRet, "<", "<");
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gEnableSSL)
|
||||||
|
{
|
||||||
|
wsUrl = wsUrl.Replace("http://", "https://");
|
||||||
|
}
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
if (gEnableSSL) {
|
||||||
|
wsUrl = wsUrl.Replace("http://", "https://");
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
29
SRC/MESAgent/MESAutoRun_STD/AutoRunService/安裝說明.txt
Normal file
29
SRC/MESAgent/MESAutoRun_STD/AutoRunService/安裝說明.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
安裝AutoRun順序
|
||||||
|
|
||||||
|
1. 複製Resources資料夾至此目錄
|
||||||
|
2. 點選對應作業系統版本安裝批次檔
|
||||||
|
32位元 Install_x86.bat
|
||||||
|
64位元 Install_x64.bat
|
||||||
|
內容為:
|
||||||
|
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "D:\TFS\messeries\MESSeries\MESClient\AutoRunServiceInstall\AutoRunService.exe"
|
||||||
|
Pause
|
||||||
|
|
||||||
|
3. 滑鼠右鍵 > 以系統管理員身分執行
|
||||||
|
4. 完成安裝
|
||||||
|
5. 修改連線字串AutoRunService.exe.config
|
||||||
|
6. Windows Service啟動 (電腦管理-服務-MES AutoRun Service,進行啟用)
|
||||||
|
7. 將Compiler後檔案AutoRunLib.dll置於D:\TFS\messeries\MESSeries\MESClient\AutoRunServiceInstall中
|
||||||
|
8. 放置iMESLicxManager.dll於D:\TFS\messeries\MESSeries\MESClient\AutoRunServiceInstall中
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
解除安裝AutoRun順序
|
||||||
|
1. Windows Service停止
|
||||||
|
2. 點選對應作業系統版本安裝批次檔
|
||||||
|
32位元 Uninstall_x86.bat
|
||||||
|
64位元 Uninstall_x64.bat
|
||||||
|
內容為:
|
||||||
|
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "D:\TFS\messeries\MESSeries\MESClient\AutoRunServiceInstall\AutoRunService.exe" -u
|
||||||
|
Pause
|
||||||
|
|
||||||
|
3. 滑鼠右鍵 > 以系統管理員身分執行
|
||||||
|
4. 完成安裝
|
41
SRC/MESAgent/MESAutoRun_STD/MESAutoRun.sln
Normal file
41
SRC/MESAgent/MESAutoRun_STD/MESAutoRun.sln
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
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}") = "AutoRunService", "AutoRunService\AutoRunService.csproj", "{1D8229EF-DEED-0C6F-1A45-76DD01FBF457}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A} = {7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoRunLib", "AutoRunLib\AutoRunLib.csproj", "{7C0468A8-E807-0FF4-0C04-C1AD9B3D7D2A}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{1D8229EF-DEED-0C6F-1A45-76DD01FBF457}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D8229EF-DEED-0C6F-1A45-76DD01FBF457}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{1D8229EF-DEED-0C6F-1A45-76DD01FBF457}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{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 = 3
|
||||||
|
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
|
||||||
|
SccTeamFoundationServer = http://tfs.imestech.com:8080/tfs/messeries6
|
||||||
|
SccLocalPath0 = .
|
||||||
|
SccProjectUniqueName1 = AutoRunLib\\AutoRunLib.vbproj
|
||||||
|
SccProjectName1 = AutoRunLib
|
||||||
|
SccLocalPath1 = AutoRunLib
|
||||||
|
SccProjectUniqueName2 = AutoRunService\\AutoRunService.vbproj
|
||||||
|
SccProjectName2 = AutoRunService
|
||||||
|
SccLocalPath2 = AutoRunService
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Reference in New Issue
Block a user