Recipe Exchange Sample client in Version 12.3.1

Guys

Has anybody sucessfully used the recipe exchange client that comes preinstalled in the samples folder with ver 12.3.1. I am under a time crunch on the current project and need to see if anybody has sucessfully used this. If so I can continue to persue this with support. If not I will just create my own parser to get data out. System is VSphere running Server 2012 with a DeltaV domain of VMs running Server 2008.

Details; App starts normally and need to connect to system. Press connect and popup appears three fields to fill in other three are prepopulated. User: (Enter my account with admin level priviliges). Password: Current password. Domain: Enter AxxxxxDCS54.

When hit OK app appears to freeze and become unresponsive. Have tried this on servers PRO and APP and workstations PRO and OWS. Also tried on a seperate DEV system we have. Response the same.

Hoping somebody out there has already been through this and can let me know what the resolution was.

4 Replies

  • Thought I would update. We found out late today that SOA Web Service needs to be enabled to use this utility. SOA can be enabled on any App station. We will try tomorrow and I will update post so the answer is available fo the next guy wanting to do this.
  • We did it on DOMAIN environment.

    Possible pitfalls:
    A- Client application development environment
    A.1 - We found that project (Visual Studio 2010) has to be configured to use .NET framework 4.0 and
    A.2- we also found thet target platform has to be properly configured to be 32bits or 64bits depending on S.O installed on computers.

    B- Related to user/passwords. There are two different logins required :
    B.1 -Credentials to be supplied by client application to access Web Services (to connect to SOA Web Services) have to be something like [DeltaVAdmin@<domainname>] in domain environmentbut must be [<SOA gateway node name>\<username>] in workgroup.
    B.2-User that access underlying data. Recipe Exchage requires access to DeltaV configuration database so, a DeltaV user having configuration rights (administrator like) is required. In this case user to provide has to be only user name because DOMAIN name is provided in a separated method argument.

    Also note that client application writen iwith .NET has a .config XML containing those fields required by the aplication (user, domain, paswords, SOA connection settings, etc...). This makes application deploymetn simpler.

    Some properties of connection must be tunned, buffer sizes, timeouts, etc.. Using .config file for that is a better option as well.

    This is a working .config file for WROKGROUP environment we used on a SoftPhase written with .NET for DeltaV v12 (32bit):

    <?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="SPH_RECIPEIMPORT.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
    </configSections>
    <system.diagnostics>
    <sources>
    <!-- En esta sección se define la configuración del registro para My.Application.Log -->
    <source name="DefaultSource" switchName="DefaultSwitch">
    <listeners>
    <add name="FileLog"/>
    <!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
    <!--<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"/>
    <!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de eventos de la aplicación -->
    <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
    </sharedListeners>
    </system.diagnostics>
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><system.serviceModel>
    <bindings>
    <netTcpBinding>
    <binding name="NetTcpBinding_IRExService" closeTimeout="00:01:00"
    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
    transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
    hostNameComparisonMode="StrongWildcard" listenBacklog="10"
    maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
    maxReceivedMessageSize="65536">
    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    <reliableSession ordered="true" inactivityTimeout="1.00:00:00"
    enabled="true" />
    <security mode="Transport">
    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
    <message clientCredentialType="Windows" />
    </security>
    </binding>
    </netTcpBinding>
    <wsHttpBinding>
    <binding name="WSHttpBinding_IRExService" closeTimeout="00:01:00"
    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
    maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
    messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true"
    allowCookies="false">
    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    <reliableSession ordered="true" inactivityTimeout="1.00:00:00"
    enabled="true" />
    <security mode="Message">
    <transport clientCredentialType="Windows" proxyCredentialType="None"
    realm="" />
    <message clientCredentialType="Windows" negotiateServiceCredential="true"
    algorithmSuite="Default" />
    </security>
    </binding>
    </wsHttpBinding>
    </bindings>
    <client>
    <endpoint address="app:49200/.../REService"
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IRExService"
    contract="RecipeExchange.IRExService" name="WSHttpBinding_IRExService">
    <identity>
    <userPrincipalName value="APP\DeltaVAdmin" />
    </identity>
    </endpoint>
    <endpoint address="net.tcp://app:49201/RecipeExchange/REService"
    binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IRExService"
    contract="RecipeExchange.IRExService" name="NetTcpBinding_IRExService">
    <identity>
    <userPrincipalName value="APP\DeltaVAdmin" />
    </identity>
    </endpoint>
    </client>
    </system.serviceModel>
    <applicationSettings>
    <SPH_RECIPEIMPORT.My.MySettings>
    <setting name="USER" serializeAs="String">
    <value>DeltaVAdmin</value>
    </setting>
    <setting name="PASSWORD" serializeAs="String">
    <value>EmersonProcess200</value>
    </setting>
    <setting name="DOMAIN" serializeAs="String">
    <value>APP</value>
    </setting>
    </SPH_RECIPEIMPORT.My.MySettings>
    </applicationSettings>
    </configuration>
  • Yes, I used the sample recipe exchange client to import and export recipes. I know that sometimes I had issues with the login as well, but can't remember what the trick was. We used it in a domain environment. I think we were running the client on a terminal server and connecting to an app station. From v12.3 to v12.3.1 there was an update to it: make sure you have really the 12.3.1 version. It allows saving the output to a file, while the earlier version just outputted it into a text box and you had to copy it. I opened a call, maybe there is something useful for you: NC-1303-8511.
  • In reply to gamella:

    Thanks we will loop back to that tomorrow. Been a crazy startup time and we dropped this for now. I will update on any progress.