Installation of ElliottService, NETcellent’s Web Services for Elliott
Installation to New Server
- .Net Extensibility 3.5
- .Net Extensibility 4.7
- ASP.NET 3.5
- ASP.NET 4.7
- ISAPI Extensions
- ISAPI Filters
Make Sure PARC
(Pervasive Auto ReConnect) is Disabled: By
default, this option is disabled. If you
need to double check this setting, use the Pervasive Control Center and
Documentation application as follows:
4.
Installation
Folder Location: On your web server, typically, you will put your Elliott
web services in a sub-directory under \Inetpub\wwwroot such as ElliottService. Download and extract the latest
D:\web\ElliottService\Deploy-<yyyymmdd>.Zip file to this folder.
5.
Set
Cobol85.cbr path: In the Bin folder of your web services installation
(\Inetpub\wwwroot\ElliottService\Bin) modify the COBOL85.CBR using Notepad. Change
@CBR_ENTRYFILE=NSIFH.INF to include full path of the bin directory (Example: @CBR_ENTRYFILE=C:\Inetpub\wwwroot\ElliottService\Bin\NSIFH.INF).
6.
Install
COBOL Runtimes (if not already installed):
a.
For 32-bit servers: Download D:\WEB\ElliottService\COBOLRuntimesFor32BitOS.Zip
and install both runtimes using the
default target directories.
b.
For 64-bit servers: Download D:\WEB\ElliottService\COBOLRuntimesFor64BitOS.Zip
and install both runtimes using the default target directories.
c.
Do not restart your system – it is not necessary.
7.
Enable Elliott
Web Services & Set Custom Programs: Enable web services and update
Elliott configuration for any custom programs for the business logic in web
services (default business logic works for most customers):
a.
Go to Utilities,
Global Setup
b.
Go to Add-Ons,
Activex/web services
c.
Go through each item on First menu and Second menu
and set each object field #1 to Y. We recommend you set all web service to Y so
they will be available if you decide to use them later.
d.
To use custom programs, change field 3 to specify
the custom business logic program your company uses for each web services
necessary. You will need help from
NETcellent for this.
8.
Configure
IIS: You need to create an application in IIS for the web services to run
under.
a.
Open IIS
from the Administrator Tools and navigate to your Web Services folder under
the Web Sites icon. If you choose the
default \Inetpub\wwwroot\ElliottService it will be under the Default Web Site
in IIS.
b. Right click on the Web Services folder (ElliottService if you choose the default install options) and select “convert to application.”
c. In the Actions pane on the right side, select Basic Settings to find the application pool of your website. The default is DefaultAppPool.
d.
Open the Application Pools folder in IIS and right
click on the Application Pool for your web services site. (the default is
defaultAppPool) Select Advanced Settings.
e.
Set enable
32-bit applications to True
f. Set
Managed Pipeline mode to Classic
g. Select
Recycling… from the Actions pane.
h. Set
Recycling Conditions to: Specific time(s): at midnight and when virtual & private memory reaches 1048576.
i. Set the identity of the application
pool as needed to access the required files. Continue reading the next steps
for more information.
9.
Permissions:
(Server Location – Elliott Machine) If you install the web services on the
same machine as Elliott/P.Sql, then leave the IIS application pool as “Network
Service.”
10.
Permissions:
(Server Location – Separate from Elliott
Machine) If you choose to install the web services on a machine that is not
running Elliott/P.Sql you will need to change the IIS application pool to a
domain user. Assign this domain user permissions to the Elliott directory. Also
assign this user to the Users Group.
11.
Network Service
User - The Network Service account is a
special, built-in account that is similar to an authenticated user account. The
Network Service account has the same level of access to resources and
objects as members of the Users group. This limited access helps safeguard your
system if individual services or processes are compromised. Services that run
as the Network Service account access network resources using the
credentials of the computer account.
12.
Elliott Data
Directory Permissions: Your P.SQL Btrieve security has two options. If you
choose the Classic option your App
Pool Identity will need read/write file system permissions to the Elliott
directory. If you choose the Mixed
option your App Pool Identity will only need traverse rights to see the
directory and files.
13. Log Folder Permissions: Elliott Web Services will create and write to log files for debugging purposes under the Web Services Log sub-directory (i.e., \Inetpub\wwwroot\ElliottServices\Log). By default, when you create a web application in IIS, the App pool running your web services will have the user indentify of “Network Service.” You need to give write permissions to the user “Network Service” to the Log folder. Otherwise, Elliott Web Services will not be able to create log files.
14. Create Event Log Keys: In order for the web services to be able to write to the event log you need to create the event log keys. Browse to RegisterEventSources.exe in your \bin folder (default path: \Inetpub\wwwroot\ElliottService\Bin\RegisterEventSources.exe) and right click on the exe to run as administrator.
15. Event
Viewer Logging: Open the event viewer and select the
ElliottService events. Right click to open the properties and select “Overwrite
event as needed.” This will prevent errors from occurring when the event log is
full.
16. Web.config settings: In the root of your Web Services folder (\Inetpub\wwwroot\ElliottService) open the web.config folder.
a. Change <compilation defaultLanguage="vb" debug="false">
i. When debug is set to true, asp.net request will not time out. This is to allow you to debug with visual studio at your own pace without having to worry about the requests suddenly disappearing. Of course in a production environment timeouts are crucial to avoid requests becoming stuck indefinitely, so this is the reason to make sure debug is set to false when the application is deployed into production.
ii. Generally speaking, the “debug” property is not there when you deploy. But if you deploy by copying the file, you should double check to make sure you set the debug=”false.”
b. Set the SMTP settings to use your mail server. Example:
<smtp deliveryMethod="Network">
<network host="mailer.netcellent.com" port="25"
userName="[account@gmail.com]" password="[password]" />
</smtp>
c. If you are not using the current version of p.sql (finding out what version is currently being developed for) you may need to modify and uncomment the following in the web config. <emk: I need to know the PSQL ADO.Net DLL we distribute, which PSQL version does that stands for? Does that match with token below? See version 3.5 on our web services folder, but below show 3.0? Are we hard coding our web services against PSQL 11 ADO.Net, that does not seems to be reasonable? Verify with Jim>
<!-- HOW TO USE:
1) Uncomment the following assemblyBinding tag to redirect the runtime to load a specific version of the Pervasive.Data.SqlClient.dll
2) Change the newVersion value to the version number of Pervasive.Data.SqlClient installed on client machine
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Pervasive.Data.SqlClient" publicKeyToken="c84cd5c63851e072"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
17. Custom Configuration Settings: You need to review the settings in the \Config\Elliott.Custom.Config file. The default settings are in the \Config\Elliott.Default.Config file. If the settings are found in the Elliott.Custom.config they will take precedence over the Elliott.default.config. For all paths use UNC \\server\share or IP address for the directory paths.
a. SiteURL - Specifies the web site url of the web services
b. StoreWebSiteURL – (Y/N) Specifies whether the (caller) website url will be stored when creating order
c. EnableTokenBaseSecurity - Specifies whether token based security is enabled, used if token needs to be passed when calling the web service. If token isn’t passed values will not be returned.
d. ReplaceEliItmIQWithSqlWhenPossible - Specifies whether SQL will replace the usage of eliitmiq component when possible
e. SQLErrorsBeforeClearingConnections - Specifies the number of PQSL Client exceptions before clearing the connection pool. The purpose is let web services recover by itself when for some reasons PSQL server become unavailable (i.e. services pack update, server rebott…etc.)
f. <add key="DDFPath" value="\\ts2\COB\Share\eli74\ddf40"/> - The DDF path is where Pervasive’s Database Definition Files are located. If a file needs to be created, the COBOL file handler will read the DDF files to construct the definition of fields and keys for the file before it calls Pervasive to create the file.
g. COBOLWindowsRTMinimum - FOR SHARING COBOL Windows runtimes
h. COBOLWindowsRTMaximum - FOR SHARING COBOL Windows runtimes
i. COBOLWindowsRTWaitSeconds - FOR SHARING COBOL Windows runtimes
j. SQLClientType - Specifies the ADO.NET provider to use for relational data access. Acceptable values are:
ODBC - ODBCConnectionString and ODBC.NET data provider will be used
PSQL - PSQLConnectionString and PSQL ADO.NET manageddata provider will be used
k. <add key="PSQLConnectionString" value="ServerDSN=ELI74TUTORIAL;Server=TS2;User ID=Master;Password=XXXXXX"/> - Specifies the connection string to use for pervasive ado.net data provider
l. <add key="ODBCConnectionString" value="DSN=ElliottData"/> - Specifies the connection string to use for odbc.net data provider
m. <add key="Elipath" value="\\ts2\COB\Share\eli74\TUTORIAL"/> - Specifies the UNC path to elliott data directory
n. <add key="ImageLinkPath" value="\\ts2\users\COB\Share\eli74\images"/> - Specifies the UNC path to elliott image directory
<!-- ORDER CONFIRMATION EMAIL SETTINGS -->
o. OrderContactEmailConfirm -Specifies whether confirmation email will be sent to order econtact upon order creation
p. CustEmailConfirm - Specifies whether confirmation email will be sent to customer who placed upon order creation
q. SendOrderAdminEmail - Specifies whether confirmation email will be sent to order admin, defined in config, upon order creation
r. UseEcontactForOrderAdminEmail - Specifies whether the from email address in Order Admin email will be taken from the Order eContact
s. SendOrderSalesmanEmail - Specifies whether confirmation email would be sent to the salesman upon order creation
t. SendOrderAdminEmailViaOrderSalesmanEmailCC - Specifies whether the Admin email will be sent as a CC on the Salesman email
u. UseEcontactForOrderSalesmanEmail - Specifies whether the from email address in Order Salesman email will be taken from the Order eContact
v. OrderAdminEmail - Specifies the order admin email address.
w. ConfirmEmailFrom - Specifies the order confirmaion email from email address
x. ConfirmEmailSubject - Specifies the subject line of the order confirmaion email. Following parameter replacement are available: @OrderNo@ - Elliott Order No
y. BeginEmailConfirmMsg – The beginning of the order confirmation email message. Following parameter replacement are available: @eContactName@ - contact name
z. CustMiscDesc - Specifies the misc desc
aa. EndEmailConfirmMsg - The end of the order confirmation email message. Following parameter replacement are available: @eContactName@ - contact name
bb. DisplayBackOrderStatus - Specifies whether back order status will be displayed in the order confirmation email.
cc. OrderTypeQLiteral - Specifies the literal for order type Q. For example, Display "Quote No" instead "Order No"
dd. EmailHeaderProdCategory & EmailHeaderMessage - EmailHeaderProdCategory specifies a product category that when a match is found for an item on the order, the EmailHeaderMessage will be added to the begining of the email
ee. IncludePackageInfo - Specifies whether to include pacakge information in order confirmation email
ff. WeightCutOff – Used when package info is enabled, specifies the the maximum number of lbs a package can contain. Must be integer. This is used in Order Confirmation email, because it will show total weight in the order and how many packages will be shipped. The WeightCutOff with the total weight in an order will determine how many packages shipped for the order
gg. PackageInfoEmailConfirmMsg - Used when package info is enabled, specifies the text for the package info. Following parameter replacement are available: @TotalWeight@, @NumberOfPackages@
DisplayShippingInstruction - Specifies whether shipping instructions will be displayed in confirmation email. When this flag is set to "Y", if there are shipping instructions, they will be displayed shipping instruction will be taken from the ORDER_SHIP_INSTRUC1 and ORDER_SHIP_INSTRUC2 fields.
ShippingChargeHeader - Specifies the header for shipping charge in the confirmation email.
DisplayShipDate - Specifies whether ship date will be displayed in confirmation email.
DisplayCustomerPONo - Specifies whether customer purchase order number will be displayed in confirmation email.
<!-- ORDER FAIL NOTIFICATION EMAIL SETTING -->
hh. SendOrderFailEmail - Specifies whether fail order notification email will be sent when order creation failed
ii. OrderFailEmailFrom - Specifies the from email address used for fail order notification email
jj. OrderFailEmailSubject – The email subject for the order notification failed email message.
kk. BeginOrderFailEmailMsg - Specifies the beginning message in fail order notification email
ll. EndOrderFailEmailMsg - Specifies the ending message in fail order notification email
<!-- OPERATIONS NOTIFICATION
EMAIL SETTING -->
mm. SendOperationsEmail - Specifies whether operations email will be sent when notifications are generated
nn. OperationsEmailFrom - Specifies the from email address in operations email
oo. OperationsEmailTo - Specifies the to email address in operations email
pp. OperationsEmailSubject - Specifies the email subject in operations email
<!-- UOM CONFIGURATION -->
qq. InventoryUom - Specifies the unit of measurement used in web service. Follow are possible values: E – Selling UOM, S – StockUOM
<!-- MISC CUSTOMER
CONVERSION CONFIGURATION -->
rr. LinkOrdToMiscCusMethod - pecifies the criteria used to match the order to an existing customer. Following are possible values: D - DISABLE, P - PHONE NUMBER, Z - ZIP, B - BEST MATCH (PHONE NUMBER + ZIP)
ss. LinkOrdToMiscCusMethod - pecifies the criteria used to match the order to an existing customer. Following are possible values: D - DISABLE, P - PHONE NUMBER, Z - ZIP, B - BEST MATCH (PHONE NUMBER + ZIP)
tt. LinkOrdForThisCusOnly - Specifies the cutomer number that the web service will do the matching for if empty string is specified, web service will try to do matching for any
uu. ZipCodeMask & PhoneNumberMask - ZipCodeMask and PhoneNumberMask specify the format you wish to apply to the input.
"D" will be replaced with digit from the input,
"A" will be replaced with alphabet from the input
(to be implemented later) any other character will be replaced directly
vv. UseSerialNumber– Specifies whether the user is using serial numbers in Elliott. Note: if the system is not using serial number and this flag is set to yes, web service will return error
ww.ReturnSerialNumberInInvIq – Will return the serial numbers when the invoice is queried if the serial number is used in the system.
xx. ReturnSerialNumberInOrdIq – Will return the serial numbers when the order is queried if the serial number is used in the system.
<!--ITEM SEARCH
CONFIGURATION -->
yy. CustomLevelReturnColumns - Specifies the columns that will be returned in the ItemInquiry web service's SearchItem web method when 'C' is passed as the DetailLevel. The value is a comma delimited list of columns names in IMTIMFIL file
zz. DebugMode - Specifies whether we are in debug mode. If DebugMode is set to "Y", exception will be rethrown
aaa. SeverityLevel – No longer used.
bbb. SendDevSupportEmail – Spefifies the email addres to notify when exception occurs.
ccc. DevSupportEmailFromAddress – Specifies the from email address in dev support email
ddd. DevSupportEmail – Sepcifies the to email address in dev support email
eee. WebServiceLogging – Specifies whether web service logging is turned on
fff. ErrorReportFromEmailAddress – Specifies the error report email from email address
ggg. ErrorReportToEmailAddress – Specifies the error report email to email address
hhh. ErrorReporteEmailSeverityThreshold - Specifies the minimum severityLevel that could trigger notification email
<!--ACH EMAIL CONFIGURATION -->
iii. ACHCreateSendAdminEmail – Specifies whether an email should be sent when an ACH account is added via the AddACHAcct method in the EliarachService
jjj. ACHCreateFromEmail – Specifies the ACH Create from email address
kkk. ACHCreateAdminEmail – Specifies the ACH Create Admin email address
lll. ACHCreateEmailSubject – Specifies the ACH Create email subject
<!-- TRANSACTION LOGGING: Two kinds of transaction logging are available: Logging to the Windows Event Log and logging to ElliottService's rolling RequestResponse.Log file. Both kinds of logging can be used at the same time, and can be controlled at the indiviual service level.
mmm. LogToEventLog - Master switch for logging to the "ElliottService" event log, "N" means don’t log to the Windows Event Log, "Y" means log method name, input parameters and duration according to the individual service's EventLog_<servicename> flag as follows: "N" - no logging for this service's methods "Y" - log each method for this service NOTE: Logging to the event log uses additional CPU cycles and could require changes to Window's Event Log configuration to accomodate the amount of data being logged.
nnn. EventLog_CustomerInquiry
ooo. EventLog_El2crcrdService
ppp. EventLog_EliaptrxService
qqq. EventLog_EliatpobService
rrr. EventLog_EliattrbService
sss. EventLog_EliautdpService
ttt. EventLog_ElibintxService
uuu. EventLog_ElibmordService
vvv. EventLog_ElicrcrdService
www. EventLog_ElicustmService
xxx. EventLog_ElicuswlService
yyy. EventLog_EliecontService
zzz. EventLog_ElievprcService
aaaa. EventLog_EligetcdService
bbbb. EventLog_EligetfrService
cccc. EventLog_ElihdtrxService
dddd. EventLog_EliinvocService
eeee. EventLog_EliitmiqService
ffff.EventLog_EliloginService
gggg. EventLog_EliorderService
hhhh. EventLog_EliordiqService
iiii. EventLog_ElirstimService
jjjj. EventLog_EliserhsService
kkkk. EventLog_ElislsmnService
llll. EventLog_ElitransService
mmmm. EventLog_ElivendrService
nnnn. EventLog_ElliottQuery
oooo. EventLog_ErrorReport
pppp. EventLog_FileService
qqqq. EventLog_InvoiceInquiry
rrrr. EventLog_ItemInquiry
ssss. EventLog_NSIGetFile
tttt.EventLog_OrderInquiry
uuuu. EventLog_QueryTurnaround
vvvv. EventLog_ResellerFinder
wwww. EventLog_VendorInquiry
<!-- LOG FILE Flags: Master switch for logging to the rolling log file, .\Log\RequestResponse.Log
xxxx. LogToLogFile - "N" means nothing will be written to the log file and no statistics will be kept. "Y" means transaction statistics will be kept and each method will be logged to the log file according to the individual service's LogFile_<servicename> flag as follows: "N" - No logging for this service's methods, "Y" - Log timestamp, method name and duration only, "I" - Log input raw XML request in addition to timestamp, method name and duration, "O" - Log ouptut raw XML response in addition to timestamp, method name and duration, "B" - Log both raw XML request and response in addition to timestamp, method name and duration. NOTE: Raw XML can be verbose and could cause the RequestRespone.Log file to cycle quickly
yyyy. LogFile_CustomerInquiry
zzzz. LogFile_El2crcrdService
aaaaa. LogFile_EliaptrxService
bbbbb. LogFile_EliatpobService
ccccc. LogFile_EliattrbService
ddddd. LogFile_EliautdpService
eeeee. LogFile_ElibintxService
fffff. LogFile_ElibmordService
ggggg. LogFile_ElicrcrdService
hhhhh. LogFile_ElicustmService
iiiii. LogFile_ElicuswlService
jjjjj. LogFile_EliecontService
kkkkk. LogFile_ElievprcService
lllll. LogFile_EligetcdService
mmmmm. LogFile_EligetfrService
nnnnn. LogFile_ElihdtrxService
ooooo. LogFile_EliinvocService
ppppp. LogFile_EliitmiqService
qqqqq. LogFile_EliloginService
rrrrr. LogFile_EliorderService
sssss. LogFile_EliordiqService
ttttt. LogFile_ElirstimService
uuuuu. LogFile_EliserhsService
vvvvv. LogFile_ElislsmnService
wwwww. LogFile_ElitransService
xxxxx. LogFile_ElivendrService
yyyyy. LogFile_ElliottQuery
zzzzz. LogFile_ErrorReport
aaaaaa. LogFile_FileService
bbbbbb. LogFile_InvoiceInquiry
cccccc. LogFile_ItemInquir
dddddd. LogFile_NSIGetFile
eeeeee. LogFile_OrderInquiry
ffffff. LogFile_QueryTurnaround
gggggg. LogFile_ResellerFinder
hhhhhh. LogFile_VendorInquiry
<!-- Performance thresholds: Specifies parameters beyond which slow web services methods are logged and/or aborted. Logging will take place in Service.Log (Log_SlowMethodThreshold) and Error.Log (Abort_SlowMethodThreshold). NOTE: Thresholds are specified in seconds.
iiiiii. Log_SlowMethodThreshold – integer value
jjjjjj. Send_SlowMethodWarningEmail – Values: Y, N
kkkkkk. Abort_SlowMethodThreshold – integer value
18. Test Site: Once the set is setup and ready, you can test the site by using the following file. If you installed the web services under the default application and with the default ElliottService folder, you can find it located at: http://localhost/ElliottService/Admin/Diag.aspx. Otherwise open IIS and use it to browse to your site and browse the diag.aspx page in the admin folder.
Update Existing Site
1. Copy \config\elliottservice.default.config to add any new config settings.
2. Recycle app pool to pick up new settings
3. Copy the zip file to the users bin folder and extract.
Debug/Errors
Cannot load elliottsevice.dll – Make sure AppPool has 32-bit enabled.
Dot Net framework 4.5 needs to be installed.
404 – Make sure IIS role and all required parts for roll are
installed.
404.17 - Dynamic content mapped to the static file handler via a wildcard MIME mapping.. Check and install the Application Role
Windows 2012-make sure .net 4.5 is installed
401.3 - Unauthorized: Access is denied due to an ACL set on the
requested resource.
Error 401.5 - Unauthorized: Authorization failed by an ISAPI/CGI application
Give app pool user permissions to
\Inetpub\wwwroot\ElliottService
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
http://support.microsoft.com/kb/812614
Exception
Unable to load DLL 'w3btrv7.dll': The specified module could not be found
- Add “PATH” environment variable with dir of the dll file.
Debugging Considerations
Thread Timeout
Normally, worker threads, under which the COBOL business logic runs, are set to timeout and abort after a configurable time. When debugging, this may not be practical.
Update ElliottService.Custom.Config and change the following
setting:
<add key="Abort_SlowMethodThreshold" value="300"/>
A value of 300 (the default) aborts the thread after 300
seconds (5 minutes). Set this to a
higher value, perhaps 3000, to allow the thread to stay alive for a long period
of time.
Be sure to change the value back to its original number once
debugging is completed.
<?xml version="1.0"?>
<configuration>
<appSettings>
<!-- APPLICATION SETTING -->
<!-- Specifies the web site url -->
<add key="SiteURL" value="webservices.elliott.com"/>
<!-- Specifies whether the (caller)
website url will be stored when creating order -->
<add key="storeWebSiteURL" value="Y"/>
<!-- [DEPRECATED] This flag had been moved to Web.Config -->
<add key="SMTPServer" value="65.212.154.51"/>
<!-- Specifies whether token based security is enabled -->
<add key="EnableTokenBaseSecurity" value="N"/>
<!-- Specifies whether SQL will replace the usage of eliimitq component when possible -->
<add key="ReplaceEllitmiqWithSqlWhenPossible" value="N"/>
<!-- Specifies the number of PQSL Client exceptions before clearing the connection pool -->
<add key="SQLErrorsBeforeClearingConnections" value="10"/>
<!-- FOR ELIITMIQ ASSEMBLY -->
<add key="DDFPath" value="\\ELI\ACCT\Elliott\DDF40"/>
<!-- FOR SHARING COBOL Windows runtimes -->
<add key="COBOLWindowsRTMinimum" value="20"/>
<add key="COBOLWindowsRTMaximum" value="100"/>
<add key="COBOLWindowsRTWaitSeconds" value="5"/>
<!-- DATA CONNECTIVITY SETTING -->
<!-- [DEPRECATED] Specifies PSQL
connection string -->
<add key="DBConnPSQL" value="ElliottData"/>
<!-- Specifies the ADO.NET provider to
use for relational data access
Acceptable values are:
ODBC - ODBCConnectionString and ODBC.NET data provider will be used
PSQL - PSQLConnectionString and PSQL ADO.NET managed data provider will be used
-->
<add key="SQLClientType" value="PSQL"/>
<!-- Specifies the connection string
to use for pervasive ado.net data provider -->
<add key="PSQLConnectionString" value="ServerDSN=ElliottData;Server=ELI;"/>
<!-- Specifies the connection string
to use for odbc.net data provider -->
<add key="ODBCConnectionString" value="DSN=ElliottData"/>
<!-- Specifies the UNC path to elliott
data directory -->
<add key="Elipath" value="\\ELI\ACCT\Elliott\Data"/>
<!-- Specifies the UNC path to elliott
image directory-->
<add key="ImageLinkPath" value="\\ELI\ACCT\Elliott\Images"/>
<!-- ORDER CONFIRMATION EMAIL SETTINGS -->
<!-- Specifies whether confirmation
email would be sent to order contact upon order creation -->
<add key="OrderContactEmailConfirm" value="Y"/>
<!-- Specifies whether confirmation email would be sent to customer upon order creation -->
<add key="CustEmailConfirm" value="Y"/>
<!-- Specifies whether confirmation email would be sent to order admin upon order creation -->
<add key="SendOrderAdminEmail" value="Y"/>
<!-- Specifies whether the from email address in Order Admin email will be taken from the Order eContact. -->
<add key="UseEcontactForOrderAdminEmail" value="N"/>
<!-- Specifies whether confirmation email would be sent to the salesman upon order creation -->
<add key="SendOrderSalesmanEmail" value="Y"/>
<!-- Specifies whether the Admin email will be sent as a CC on the Salesman email -->
<add key="SendOrderAdminEmailViaOrderSalesmanEmailCC" value="N"/>
<!-- Specifies whether the from email address in Order Salesman email will be taken from the Order eContact. -->
<add key="UseEcontactForOrderSalesmanEmail" value="N"/>
<!-- Specifies the order admin email address. -->
<add key="OrderAdminEmail" value="wserror@netcellent.com"/>
<!-- Specifies the order confirmaion email from email address -->
<add key="ConfirmEmailFrom" value="sales@spadra.net"/>
<!-- Specifies the order confirmaion email subject.
Following parameter replacement are available:
@OrderNo@ - Elliott Order No
-->
<add key="ConfirmEmailSubject" value="eStore Order Acknowledgement - Order # @OrderNo@"/>
<!-- Specifies the order confirmation email beginning.
Following parameter replacement are available
@eContactName@ - contact name
-->
<add key="BeginEmailConfirmMsg" value="Thank you @eContactName@ for your order on spadra.net. Your purchased items are listed below."/>
<!-- Specifies the misc desc -->
<add key="CustMiscDesc" value=""/>
<!-- Specifies the order confirmation email beginning.
Following parameter replacement are available
@eContactName@ - contact name
-->
<add key="EndEmailConfirmMsg" value="Thank you @eContactName@ for shopping spadra.net"/>
<!-- Specifies whether back order status will be displayed in confirmation email -->
<add key="DisplayBackOrderStatus" value="Y"/>
<!-- Specifies the literal for order type Q. For example, Display "Quote No" instead "Order No" -->
<add key="OrderTypeQLiteral" value="Order No"/>
<!-- EmailHeaderProdCategory specifies a product category that when match, the EmailHeaderMessage
will be added to the begining of the email -->
<add key="EmailHeaderProdCategory" value=""/>
<add key="EmailHeaderMessage" value=""/>
<!-- Specifies whether to include pacakge information in order confirmation email -->
<add key="IncludePackageInfo" value="N"/>
<!-- If IncludePackageInfo is set to "Y", specifies the the maximum number of lbs a package
can contain. Must be integer.
This is used in Order Confirmation email, because it will show total weight in the order and how many packages will be shipped
The WeightCutOff with the total weight in an order will determine how many packages shipped for the order -->
<add key="WeightCutOff" value="65"/>
<!-- If IncludePackageInfo is set to "Y", specifies the text for the package info
Following parameter replacement are available:
@TotalWeight@
@NumberOfPackages@ -->
<add key="PackageInfoEmailConfirmMsg" value="Total weight of parts @TotalWeight@ lbs without packaging to be shipped in @NumberOfPackages@ package(s)."/>
<!-- Specifies whether shipping instructions will be displayed in confirmation email
When this flag is set to "Y", if there are shipping instructions, they will be displayed
shipping instruction will be taken from the ORDER_SHIP_INSTRUC1 and ORDER_SHIP_INSTRUC2 fields -->
<add key="DisplayShippingInstruction" value="N"/>
<!-- Specifies the header for shipping instructions in the confirmation email
Only applicable if DisplayShippingInstruction is set to "Y" -->
<add key="ShippingInstructionHeader" value="Shipping Instructions:"/>
<!-- Specifies the header for shipping charge in the confirmation email -->
<add key="ShippingChargeHeader" value="Shipping:"/>
<!-- Specifies whether ship date will be displayed in confirmation email -->
<add key="DisplayShipDate" value="N"/>
<!-- Specifies whether customer purchase order number will be displayed in confirmation email -->
<add key="DisplayCustomerPONo" value="N"/>
<!-- ORDER FAIL NOTIFICATION EMAIL SETTING -->
<!-- Specifies whether fail order notification email will be sent when order creation failed -->
<add key="SendOrderFailEmail" value="Y"/>
<!-- Specifies the from email address used for fail order notification email -->
<add key="OrderFailEmailFrom" value="sales@spadra.net"/>
<!-- Specifies the email subject in fail order notification email -->
<add key="OrderFailEmailSubject" value="eStore Create Order Failed"/>
<!-- Specifies the beginning message in fail order notification email -->
<add key="BeginOrderFailEmailMsg" value="A failure occured while creating an order. Following are the order information:"/>
<!-- Specifies the ending message in fail order notification email -->
<add key="EndOrderFailEmailMsg" value="For more information, please use the order inquiry function in the admin section"/>
<!-- OPERATIONS NOTIFICATION EMAIL SETTING -->
<!-- Specifies whether operations email will be sent when notifications are generated -->
<add key="SendOperationsEmail" value="Y"/>
<!-- Specifies the from email address in operations email -->
<add key="OperationsEmailFrom" value="operations@spadra.net"/>
<!-- Specifies the to email address in operations email -->
<add key="OperationsEmailTo" value="jeg@netcellent.com"/>
<!-- Specifies the email subject in operations email -->
<add key="OperationsEmailSubject" value="Elliott.NET Web Services Alert"/>
<!-- UOM CONFIGURATION -->
<!-- Specifies the unit of measurement used in web service.
Following are the possible values:
E - SELLING UOM , S - STOCKING UOM
-->
<add key="InventoryUom" value="E"/>
<!-- MISC CUSTOMER CONVERSION CONFIGURATION -->
<!-- Specifies the criteria used to match the order to an existing customer.
Following are the possible values
D - DISABLE, P - PHONE NUMBER, Z - ZIP, B - BEST MATCH (PHONE NUMBER + ZIP)
-->
<add key="LinkOrdToMiscCusMethod" value="B"/>
<!-- Specifies the cutomer number that the web service will do the matching for if empty string is specified, web service will try to do matching for any misc customer-->
<add key="LinkOrdForThisCusOnly" value="*YAHOO"/>
<!-- ZipCodeMask and PhoneNumberMask specify the format you wish to apply to the input.
"D" will be replaced with digit from the input,
"A" will be replaced with alphabet from the input (to be implemented later)
any other character will be replaced directly -->
<add key="ZipCodeMask" value="DDDDD"/>
<add key="PhoneNumberMask" value="DDD-DDD-DDDD"/>
<!-- SERIAL NUMBER CONFIGURATION -->
<!-- Specifies whether the user is
using serial number
EliordiqService will return the serial numbers when invoice is queried if the serial number is used in the system. Note: if the system is not using serial number and this flag is set to yes, web service will return error -->
<add key="UseSerialNumber" value="Y"/>
<add key="ReturnSerialNumberInInvIq" value="Y"/>
<add key="ReturnSerialNumberInOrdIq" value="Y"/>
<!--ITEM SEARCH CONFIGURATION -->
<!-- Specifies the columns that will be returned in the ItemInquiry web service's
SearchItem web method when 'C' is passed as the DetailLevel.
The value is a comma delimited list of columns names in IMTIMFIL file
-->
<add key="CustomLevelReturnColumns" value="ITEM_DESC1,UCASE(ITEM_DESC2) AS ITEM_DESC2,ITEM_PROD_CAT,ITEM_WEIGHT,ITEM_PRICE,ITEM_QTY_ON_ORDER,ITEM_PRICE_UOM,ITEM_USER_DEF_CD,ITEM_PUR_OR_MFG_CD,ITEM_END_ITEM_CD,ITEM_MOSTLY_PUR_MFG"/>
<!--ACH EMAIL CONFIGURATION -->
<!-- Specifies if an email should be sent if an ACH account is added -->
<add key="ACHCreateSendAdminEmail" value="N"/>
<add key="ACHCreateFromEmail" value="accounting@netcellent.com"/>
<add key="ACHCreateAdminEmail" value="accounting@netcellent.com"/>
<add key="ACHCreateEmailSubject" value="Bank Account Added through Web Services"/>
<!-- LOGGING AND DEBUG INFO -->
<!-- Specifies whether we are in debug mode. If DebugMode is set to "Y", exception will be rethrown -->
<add key="DebugMode" value="N"/>
<add key="SeverityLevel" value="0"/>
<add key="SendDevSupportEmail" value="Y"/>
<!-- Specifies the from email address in dev support email -->
<add key="DevSupportEmailFromAddress" value="support@netcellent.com"/>
<!-- Sepcifies the to email address in dev support email -->
<add key="DevSupportEmail" value="wserror@netcellent.com"/>
<!-- Specifies whether web service logging is turned on -->
<add key="WebServiceLogging" value="Y"/>
<!-- Specifies the error report email from email address -->
<add key="ErrorReportFromEmailAddress" value="support@netcellent.com"/>
<!-- Specifies the error report email to email address -->
<add key="ErrorReportToEmailAddress" value="wserror@netcellent.com"/>
<!-- Specifies the minimum severityLevel that could trigger notification email -->
<add key="ErrorReporteEmailSeverityThreshold" value="0"/>
<!-- TRANSACTION LOGGING:
Two kinds of transaction logging are available: Logging to the Windows Event Log and logging to ElliottService's rolling RequestResponse.Log file. Both kinds of logging can be used at the same time, and can be controlled at the indiviual service level. -->
<!-- EVENT LOG Flags-->
<!-- Master switch for logging to the "ElliottService" event log-->
<add key="LogToEventLog" value="Y"/>
<!-- "N" means don't log to the Windows Event Log.
"Y" means log method name, input parameters and duration according to the individual
service's EventLog_<servicename> flag as follows:
"N" - no logging for this service's methods
"Y" - log each method for this service
NOTE: Logging to the event log uses additional CPU cycles and could require changes to Window's Event Log configuration to accomodate the amount of data being logged. -->
<add key="EventLog_CustomerInquiry" value="N"/>
<add key="EventLog_El2crcrdService" value="N"/>
<add key="EventLog_EliaptrxService" value="N"/>
<add key="EventLog_EliatpobService" value="N"/>
<add key="EventLog_EliattrbService" value="N"/>
<add key="EventLog_EliautdpService" value="N"/>
<add key="EventLog_ElibintxService" value="N"/>
<add key="EventLog_ElibmordService" value="N"/>
<add key="EventLog_ElicrcrdService" value="N"/>
<add key="EventLog_ElicustmService" value="N"/>
<add key="EventLog_ElicuswlService" value="N"/>
<add key="EventLog_EliecontService" value="N"/>
<add key="EventLog_ElievprcService" value="N"/>
<add key="EventLog_EligetcdService" value="N"/>
<add key="EventLog_EligetfrService" value="N"/>
<add key="EventLog_ElihdtrxService" value="N"/>
<add key="EventLog_EliinvocService" value="N"/>
<add key="EventLog_EliitmiqService" value="N"/>
<add key="EventLog_EliloginService" value="N"/>
<add key="EventLog_EliorderService" value="N"/>
<add key="EventLog_EliordiqService" value="N"/>
<add key="EventLog_ElirstimService" value="N"/>
<add key="EventLog_EliserhsService" value="N"/>
<add key="EventLog_ElislsmnService" value="N"/>
<add key="EventLog_ElitransService" value="N"/>
<add key="EventLog_ElivendrService" value="N"/>
<add key="EventLog_ElliottQuery" value="N"/>
<add key="EventLog_ErrorReport" value="N"/>
<add key="EventLog_FileService" value="N"/>
<add key="EventLog_InvoiceInquiry" value="N"/>
<add key="EventLog_ItemInquiry" value="N"/>
<add key="EventLog_NSIGetFile" value="N"/>
<add key="EventLog_OrderInquiry" value="N"/>
<add key="EventLog_QueryTurnaround" value="N"/>
<add key="EventLog_ResellerFinder" value="N"/>
<add key="EventLog_VendorInquiry" value="N"/>
<!-- LOG FILE Flags-->
<!-- Master switch for logging to the rolling log file, .\Log\RequestResponse.Log. -->
<add key="LogToLogFile" value="Y"/>
<!-- "N" means nothing will be written to the log file and no statistics will be kept.
"Y" means transaction statistics will be kept and each method will be logged to the log file
according to the individual service's LogFile_<servicename> flag as follows:
"N" - No logging for this service's methods
"Y" - Log timestamp, method name and duration only
"I" - Log input raw XML request in addition to timestamp, method name and duration
"O" - Log ouptut raw XML response in addition to timestamp, method name and duration
"B" - Log both raw XML request and response in addition to timestamp, method name and duration
NOTE: Raw XML can be verbose and could cause the RequestRespone.Log file to cycle quickly. -->
<add key="LogFile_CustomerInquiry" value="N"/>
<add key="LogFile_El2crcrdService" value="Y"/>
<add key="LogFile_EliaptrxService" value="N"/>
<add key="LogFile_EliatpobService" value="N"/>
<add key="LogFile_EliattrbService" value="N"/>
<add key="LogFile_EliautdpService" value="N"/>
<add key="LogFile_ElibintxService" value="N"/>
<add key="LogFile_ElibmordService" value="N"/>
<add key="LogFile_ElicrcrdService" value="N"/>
<add key="LogFile_ElicustmService" value="N"/>
<add key="LogFile_ElicuswlService" value="N"/>
<add key="LogFile_EliecontService" value="N"/>
<add key="LogFile_ElievprcService" value="N"/>
<add key="LogFile_EligetcdService" value="N"/>
<add key="LogFile_EligetfrService" value="N"/>
<add key="LogFile_ElihdtrxService" value="N"/>
<add key="LogFile_EliinvocService" value="N"/>
<add key="LogFile_EliitmiqService" value="N"/>
<add key="LogFile_EliloginService" value="N"/>
<add key="LogFile_EliorderService" value="N"/>
<add key="LogFile_EliordiqService" value="N"/>
<add key="LogFile_ElirstimService" value="N"/>
<add key="LogFile_EliserhsService" value="N"/>
<add key="LogFile_ElislsmnService" value="N"/>
<add key="LogFile_ElitransService" value="N"/>
<add key="LogFile_ElivendrService" value="N"/>
<add key="LogFile_ElliottQuery" value="N"/>
<add key="LogFile_ErrorReport" value="N"/>
<add key="LogFile_FileService" value="N"/>
<add key="LogFile_InvoiceInquiry" value="N"/>
<add key="LogFile_ItemInquiry" value="N"/>
<add key="LogFile_NSIGetFile" value="N"/>
<add key="LogFile_OrderInquiry" value="N"/>
<add key="LogFile_QueryTurnaround" value="N"/>
<add key="LogFile_ResellerFinder" value="N"/>
<add key="LogFile_VendorInquiry" value="N"/>
<!-- Performance thresholds...
Specifies parameters beyond which slow web services methods are logged and/or aborted. Logging will take place in Service.Log (Log_SlowMethodThreshold) and Error.Log Abort_SlowMethodThreshold).
NOTE: Thresholds are specified in seconds. -->
<add key="Log_SlowMethodThreshold" value="60"/>
<add key="Send_SlowMethodWarningEmail" value="N"/>
<add key="Abort_SlowMethodThreshold" value="300"/>
</appSettings>
<!-- System.Net.Mail -->
<!-- This provides sample configuration. You will need to put this in web.config for it to take effect
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" >
<network host="mailer.netcellent.com" port="25" />
<network host="smtp.gmail.com" port="587" defaultCredentials="true" userName="[account@gmail.com]" password="[password]" />
</smtp>
</mailSettings>
</system.net>
-->
</configuration >
Updated: 5/11/23