Skip to content

Instantly share code, notes, and snippets.

@dmitry-solomadin
Last active December 2, 2022 17:54
Show Gist options
  • Save dmitry-solomadin/e7c1b523574a7db8dcb3393c99b157ef to your computer and use it in GitHub Desktop.
Save dmitry-solomadin/e7c1b523574a7db8dcb3393c99b157ef to your computer and use it in GitHub Desktop.

First, I send the Get_Client request:

<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://schemas.appliedsystems.com/epic/sdk/2009/07/" xmlns:ns1="http://webservices.appliedsystems.com/epic/sdk/2013/03/" xmlns:_get="http://schemas.appliedsystems.com/epic/sdk/2009/07/_get/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <ns:MessageHeader>
      <ns:AuthenticationKey>CBMwQgBmVejq5Ra3d3Ohnj8dtMVNIZBCknsQESGLni0=</ns:AuthenticationKey>
      <ns:DatabaseName>Roger26_DEV</ns:DatabaseName>
    </ns:MessageHeader>
  </soapenv:Header>
  <soapenv:Body>
    <ns1:Get_Client>
      <ns1:ClientFilterObject>
        <_get:FirstName>Jack</_get:FirstName>
        <_get:LastName>Sparrow</_get:LastName>
        <_get:PhoneNumber xsi:nil="true"/>
      </ns1:ClientFilterObject>
    </ns1:Get_Client>
  </soapenv:Body>
</soapenv:Envelope>

This is the reponse I get:

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <Get_ClientResponse xmlns="http://webservices.appliedsystems.com/epic/sdk/2013/03/">
      <Get_ClientResult xmlns:a="http://schemas.appliedsystems.com/epic/sdk/2009/07/_get/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:Clients xmlns:b="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/">
          <b:Client>
            <b:AccountName>newone</b:AccountName>
            <b:AccountValue xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_client/">
              <c:Address xmlns:d="http://schemas.appliedsystems.com/epic/sdk/2009/07/_shared/">
                <d:City>Toronto</d:City>
                <d:CountryCode>USA</d:CountryCode>
                <d:County/>
                <d:StateOrProvinceCode/>
                <d:Street1/>
                <d:Street2/>
                <d:Street3/>
                <d:ZipOrPostalCode/>
              </c:Address>
              <c:AddressDescription/>
              <c:Comments>Just a bunch of info dumped here
 And on the new line too</c:Comments>
              <c:Extension/>
              <c:FaxCallPermission/>
              <c:FaxDescription/>
              <c:FaxExtension/>
              <c:FaxNumber/>
              <c:Number>8579388937</c:Number>
              <c:NumberCallPermission>Did Not Obtain</c:NumberCallPermission>
              <c:NumberDescription/>
              <c:NumberType/>
              <c:Structure xmlns:d="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_common/">
                <d:AgencyStructureItem>
                  <d:AgencyCode>MIA</d:AgencyCode>
                  <d:BranchCode>DEF</d:BranchCode>
                  <d:Flag>View</d:Flag>
                </d:AgencyStructureItem>
              </c:Structure>
              <c:Website i:nil="true"/>
              <c:FaxCountryCode/>
              <c:PhoneCountryCode/>
              <c:SiteID/>
            </b:AccountValue>
            <b:AdditionalContactFirst i:nil="true"/>
            <b:AdditionalContactLast i:nil="true"/>
            <b:AdditionalContactMiddle i:nil="true"/>
            <b:AdditionalContactPrefix/>
            <b:AdditionalContactSuffix/>
            <b:BillingValue xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_client/">
              <c:BrokerLookupCode/>
              <c:ServiceChargeFlag>false</c:ServiceChargeFlag>
              <c:InvoiceLayout>Default Invoice</c:InvoiceLayout>
              <c:InvoicePageBreak>Client</c:InvoicePageBreak>
              <c:StatementLayout>Default Client Statement</c:StatementLayout>
              <c:StatementPageBreak>Account</c:StatementPageBreak>
              <c:BillBrokerNet>false</c:BillBrokerNet>
            </b:BillingValue>
            <b:BusinessName i:nil="true"/>
            <b:BusinessPrefix/>
            <b:BusinessSuffix/>
            <b:CategoriesHistoryValue xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_client/">
              <c:AgencyDefinedCategories xmlns:d="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_common/"/>
              <c:DateConverted i:nil="true"/>
              <c:PriorAccountID/>
              <c:Relationships xmlns:d="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_common/"/>
            </b:CategoriesHistoryValue>
            <b:ClientID>99597</b:ClientID>
            <b:ClientLookupCode>JACSPA-B0E</b:ClientLookupCode>
            <b:ConfidentialClientAccessValue xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_client/">
              <c:ConfidentialClientAccessAllSelectedOption xmlns:d="http://schemas.appliedsystems.com/epic/sdk/2009/07/_common/">
                <d:OptionName>All</d:OptionName>
                <d:Value>0</d:Value>
              </c:ConfidentialClientAccessAllSelectedOption>
              <c:ConfidentialClientAccessItems/>
            </b:ConfidentialClientAccessValue>
            <b:DUNS i:nil="true"/>
            <b:FormatOption xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_common/">
              <c:OptionName>Individual</c:OptionName>
              <c:Value>0</c:Value>
            </b:FormatOption>
            <b:InActivateOption xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_common/">
              <c:OptionName>DoNothing</c:OptionName>
              <c:Value>0</c:Value>
            </b:InActivateOption>
            <b:InActivateReason/>
            <b:IsBenefits>false</b:IsBenefits>
            <b:IsBonds>false</b:IsBonds>
            <b:IsCommercial>false</b:IsCommercial>
            <b:IsFinancialServices>false</b:IsFinancialServices>
            <b:IsLifeAndHealth>false</b:IsLifeAndHealth>
            <b:IsOther>false</b:IsOther>
            <b:IsPersonal>false</b:IsPersonal>
            <b:IsProspectFlag>true</b:IsProspectFlag>
            <b:PrimaryContactCallPermission/>
            <b:PrimaryContactEmail/>
            <b:PrimaryContactExtension/>
            <b:PrimaryContactFirst i:nil="true"/>
            <b:PrimaryContactLast i:nil="true"/>
            <b:PrimaryContactMiddle i:nil="true"/>
            <b:PrimaryContactNumber/>
            <b:PrimaryContactNumberType/>
            <b:PrimaryContactPrefix/>
            <b:PrimaryContactSuffix/>
            <b:ServicingContacts xmlns:c="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_common/">
              <c:ServicingRoleItem>
                <c:Description/>
                <c:EmployeeLookupCode/>
                <c:Role>Account Executive</c:Role>
              </c:ServicingRoleItem>
              <c:ServicingRoleItem>
                <c:Description/>
                <c:EmployeeLookupCode/>
                <c:Role>Associate</c:Role>
              </c:ServicingRoleItem>
              <c:ServicingRoleItem>
                <c:Description/>
                <c:EmployeeLookupCode/>
                <c:Role>Surety Executive</c:Role>
              </c:ServicingRoleItem>
              <c:ServicingRoleItem>
                <c:Description/>
                <c:EmployeeLookupCode/>
                <c:Role>Surety Associate</c:Role>
              </c:ServicingRoleItem>
            </b:ServicingContacts>
            <b:Timestamp>2017-06-12T03:21:19.513</b:Timestamp>
            <b:IsAgriculture>false</b:IsAgriculture>
            <b:PrimaryContactCountryCode/>
          </b:Client>
        </a:Clients>
        <a:TotalPages>1</a:TotalPages>
      </Get_ClientResult>
    </Get_ClientResponse>
  </s:Body>
</s:Envelope>

Next, I get the ClientID from that response and send the Update_Client reuqest:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://schemas.appliedsystems.com/epic/sdk/2009/07/" xmlns:ns1="http://webservices.appliedsystems.com/epic/sdk/2013/03/" xmlns:_ac="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/" xmlns:_cl="http://schemas.appliedsystems.com/epic/sdk/2009/07/_account/_client/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <ns:MessageHeader>
      <ns:AuthenticationKey>CBMwQgBmVejq5Ra3d3Ohnj8dtMVNIZBCknsQESGLni0=</ns:AuthenticationKey>
      <ns:DatabaseName>Roger26_DEV</ns:DatabaseName>
    </ns:MessageHeader>
  </soapenv:Header>
  <soapenv:Body>
    <ns1:Update_Client>
      <ns1:ClientObject>
        <_ac:AccountName>newone</_ac:AccountName>
        <_ac:BillingValue>
          <_cl:InvoiceLayout>Default Invoice</_cl:InvoiceLayout>
          <_cl:StatementLayout>Something</_cl:StatementLayout>
          <_cl:StatementPageBreak>Contact</_cl:StatementPageBreak>
        </_ac:BillingValue>
        <_ac:ClientID>99597</_ac:ClientID>
        <_ac:ClientLookupCode>FirSpa-853</_ac:ClientLookupCode>
        <_ac:PrimaryContactFirst>First</_ac:PrimaryContactFirst>
        <_ac:PrimaryContactLast>Sparrow</_ac:PrimaryContactLast>
      </ns1:ClientObject>
    </ns1:Update_Client>
  </soapenv:Body>
</soapenv:Envelope>

However this is what I get in response:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <s:Fault>
      <faultcode>s:Client</faultcode>
      <faultstring xml:lang="en-US">Method call failed since the object has changed. Try again.</faultstring>
      <detail>
        <ConcurrencyFault xmlns="http://schemas.appliedsystems.com/epic/sdk/2009/07/_fault/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
          <Description>Update failed.BusinessAutoAdditionalCoveragesObject has been updated by another user after your last GET operation. Repeat the GET operation and then try to update. Your changes may be discarded depending on how the program using SDK has been implemented.</Description>
          <MethodName>Update_Client</MethodName>
        </ConcurrencyFault>
      </detail>
    </s:Fault>
  </s:Body>
</s:Envelope>

Note, that these 2 requests are the only one I send per session. Also this is test DB and I get those responses constantly, so we can rule out that someone else is sending requests to update this client.

@dmitry-solomadin
Copy link
Author

dmitry-solomadin commented Jun 13, 2017

This is what I get if I don't specify the BillingValue

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <s:Fault>
      <faultcode>s:Client</faultcode>
      <faultstring xml:lang="en-US">A required property is missing.; Field = BillingValue.InvoiceLayout.</faultstring>
      <detail>
        <InputValidationFault xmlns="http://schemas.appliedsystems.com/epic/sdk/2009/07/_fault/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
          <Description>A required property is missing.</Description>
          <ExceptionFile/>
          <FieldName>BillingValue.InvoiceLayout</FieldName>
          <IsLengthExceededFault>false</IsLengthExceededFault>
          <MaximumValueorLength/>
          <MethodName>Update_Client</MethodName>
        </InputValidationFault>
      </detail>
    </s:Fault>
  </s:Body>
</s:Envelope>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment