Installation of ElliottService, NETcellent’s Web Services for Elliott

Installation to New Server

1. Server Location: Decide if you are going to install the web services on the same machine running Elliott, or a separate server on your network. The machine must reside on your network.

2. Set Up Server: If your application server does not have IIS and .NET installed, you will need to set it up. Click Start -> All Programs -> Administrative Tools -> Server Manager. . In the Server Manager window, scroll down to Roles Summary, and then click Add Roles. The Add Roles Wizard will start. Select Web Server (IIS).  Add roles: Application Server (.net 4.5) and Web server IIS

3. Install p.sql client: Install the p.sql client on the web services machine.

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:

On the database server machine, make sure the Enable Auto Reconnect  CheckBox under Communication Protocols under the Configure Local Engine link is not checked. On the IIS server machine(s), make sure the Enable Auto Reconnect  CheckBox under Communication Protocols under the Configure MicroKernel Router link is not checked.



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@

 

        <!-- 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.    ACHCreateSendAdminEmailSpecifies whether an email should be sent when an ACH account is added via the AddACHAcct method in the EliarachService

jjj.    ACHCreateFromEmailSpecifies the ACH Create from email address

kkk.    ACHCreateAdminEmailSpecifies the ACH Create Admin email address

lll.    ACHCreateEmailSubjectSpecifies 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.

SAMPLE ELLIOTTSERVICE.DEFAULT.CONFIG

<?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)."/>

         <!-- 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 >


Feedback and Knowledge Base