Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Connecting to a SOAP API

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Connecting to a SOAP API

    I need some help figuring out how to create a Web Services Reference Component using Alpha's Web Services tool.

    The service I am attempting to connect to is a test server.

    The WSDL definitions are here http://cnx.test.dat.com:9280/wsdl/Tf...tMatching.wsdl

    The service URL is http://cnx.test.dat.com:9280/TfmiRequest

    A user ID and password have been supplied. Anyone that wants to try can use them as it is a test server.

    Login:
    lst_cnx1
    Password:
    services

    The support people at the company I am working with tell me these credentials work and have been tested using SoapUI. I have not tested with SoapUI myself.

    It is my understanding that in order to retrieve the WSDL definitions the user ID, password and service URL are not required. I've tried it with and without them.

    When creating a new Soap Definition in Alpha, it returns an error, and according to the company's support, the logs on their end don't show any attempt at a connection.

    Alpha allows the selection of three different Service Types - WCF, SOAP and SOAP12. Each returns a different error, and the Web Services Component is not created.

    Error1.png Error2.png Error3.png


    Using DotNet::Services.GenerateWebServiceClientFromURL Method I have attempted to do this in xbasic:

    Code:
    DIM ProxyAssembly as C = "C:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLL"
    DIM WSDLURL as C = "http://cnx.test.dat.com:9280/wsdl/TfmiFreightMatching.wsdl?WSDL"
    IF .not. File.Exists(ProxyAssembly)
        DIM Sv as DotNet::Services
        Sv.GenerateWebServiceClientFromURL(WSDLURL, ProxyAssembly)
    END IF
    This creates three files - MyProxy.DLL, MyProxy.cs, MyProxy.pdb

    Code:
    'Generate the Assembly
    dim Service as DotNet::Services
    dim WebLink as C = "http://cnx.test.dat.com:9280/wsdl/TfmiFreightMatching.wsdl?WSDL"
    dim AssyFile as C = "C:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLL" 'This directory must already exist
    dim Result as C
    if Service.GenerateWebServiceClientFromURL(WebLink, AssyFile)
    Result = Result + "Assembly '" + AssyFile \
    + "' was successfully created "
    else
    Result = Result + "Error creating assembly '" + AssyFile \
    + "'" + crlf() \
    + chr(9) + Service.CallResult.Text + crlf()
    end if
    showvar(Result)
    This returns "Assembly 'C:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLL' was successfully created"

    Code:
    'Register the service
    dim Service as DotNet::Services
    dim AssyRef as DotNet::AssemblyReference
    dim Namespace as C = "MyProxy"
    AssyRef.FileName = "C:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLL" 'must exist
    Dim Result as C
    
    if Service.RegisterAssembly(NameSpace, AssyRef)
    Result = Result + "Assembly '" + AssyRef.FileName \
    + "C:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLL" + NameSpace + "Assembly '" + crlf()
    else
    Result = Result + "' was successfully registered in namespace '" + AssyRef.FileName \
    + "':" + NameSpace + "Assembly '" + crlf() \
    + chr(9) + Service.CallResult.Text + crlf()
    end if
    showvar(Result)
    This returns:
    "AssemblyC:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLLC:\Alpha5\FreightZone\FreightProV1.WebProjects\Default.WebProject\bin\webreference\MyProxy.DLLMyProxyAssembly '"

    Can I generate the WebServices Component from xbasic?

    #2
    Re: Connecting to a SOAP API

    I should mention I am using Build 5271_5160

    Using SoapUI I entered just the WSDL URL, and it worked perfectly.

    Soap1.png

    Soap2.png

    Comment


      #3
      Re: Connecting to a SOAP API

      It turns out that this was an Alpha bug. It is fixed in pre-release 5332-5176.

      Web Services now generates a Web Reference and the .NET assembly:

      Untitled.png

      After spending a lot of time on this, I have made some limited progress. I can log in to the service:

      Code:
      dim operation as ::WebReferences::DATtest::LoginOperation 
      	operation.loginId = "lst_cnx1"
      	operation.password = "services"
      	operation.thirdPartyId = "1"
      	operation.apiVersion = 2
      dim request as ::WebReferences::DATtest::LoginRequest 
      	request.LoginOperation = operation 
      dim request1 as ::WebReferences::DATtest::LoginRequest1
      	request1.loginRequest = request
      dim arg_Request as ::WebReferences::DATtest::LoginRequest
      dim b as System::ServiceModel::BasicHttpBinding                            
      
      dim e as System::ServiceModel::EndPointAddress = new System::ServiceModel::EndPointAddress("http://cnx.test.dat.com:9280/TfmiRequest")
      dim wr as ::WebReferences::DATtest::TfmiFreightMatchingPortTypeClient = new ::WebReferences::DATtest::TfmiFreightMatchingPortTypeClient(b,e)
      dim result as ::WebReferences::DATtest::LoginResponse1 = null_value()
      
      	result = wr.Login(Request1)
      
      dim primary as c = base64encode(result.loginresponse.loginresult.item.token.primary)
      dim secondary as c = base64encode(result.loginresponse.loginresult.item.token.secondary)
      dim _time as t = result.loginResponse.loginResult.Item.token.expiration
      
      ui_msg_box("Login","Primary: " + primary + crlf(2) + "Secondary: " + secondary + crlf(2) + _time)
      The response contains 3 items - a primary token, a secondary token, and a timestamp.

      Once successfully logged in, the tokens are valid for 12 hours. Because this logs into a test server, the timestamp returned is 01/01/0001 12:00:00 00 am.

      Both tokens are to be used in future requests.


      So far so good. The next step is to use another available method, "PostAsset". The xbasic generated by WDSL Xbasic Genie is a starting place, but needs to be modified.
      I can generate a PostAsset request and receive a successful response in xml using SoapUI.

      What I am having trouble with is how to generate the request with xbasic.

      So I would like to find someone who has experience with APIs, who can review this process, and give me some pointers.

      The PostAsset method has a lot of arguments available, many are optional. I only need to use 17 of them.

      Here is the code generated by the WDSL Xbasic Genie for PostAsset:

      Code:
      on error goto ranIntoProblem
      dim arg_Request as ::WebReferences::DATtest::PostAssetRequest
      dim arg_Request_shipment as ::WebReferences::DATtest::Shipment
      arg_Request_shipment.equipmentType = ""
      dim arg_Request_shipment_origin as ::WebReferences::DATtest::Place
      dim arg_Request_shipment_origin_postalCode as ::WebReferences::DATtest::FmPostalCode
      arg_Request_shipment_origin_postalCode.country = ""
      dim arg_Request_shipment_origin_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_origin_postalCode.code = arg_Request_shipment_origin_postalCode_code
      arg_Request_shipment_origin.postalCode = arg_Request_shipment_origin_postalCode
      dim arg_Request_shipment_origin_cityAndState as ::WebReferences::DATtest::CityAndState
      arg_Request_shipment_origin_cityAndState.city = ""
      arg_Request_shipment_origin_cityAndState.stateProvince = ""
      arg_Request_shipment_origin_cityAndState.county = ""
      arg_Request_shipment_origin.cityAndState = arg_Request_shipment_origin_cityAndState
      dim arg_Request_shipment_origin_namedPostalCode as ::WebReferences::DATtest::NamedPostalCode
      dim arg_Request_shipment_origin_namedPostalCode_postalCode as ::WebReferences::DATtest::PostalCode
      arg_Request_shipment_origin_namedPostalCode_postalCode.country = ""
      dim arg_Request_shipment_origin_namedPostalCode_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_origin_namedPostalCode_postalCode.code = arg_Request_shipment_origin_namedPostalCode_postalCode_code
      arg_Request_shipment_origin_namedPostalCode.postalCode = arg_Request_shipment_origin_namedPostalCode_postalCode
      arg_Request_shipment_origin.namedPostalCode = arg_Request_shipment_origin_namedPostalCode
      dim arg_Request_shipment_origin_coordinates as ::WebReferences::DATtest::LatLon
      arg_Request_shipment_origin_coordinates.latitude = 0
      arg_Request_shipment_origin_coordinates.longitude = 0
      arg_Request_shipment_origin.coordinates = arg_Request_shipment_origin_coordinates
      dim arg_Request_shipment_origin_namedCoordinates as ::WebReferences::DATtest::NamedLatLon
      arg_Request_shipment_origin_namedCoordinates.city = ""
      arg_Request_shipment_origin_namedCoordinates.stateProvince = ""
      arg_Request_shipment_origin.namedCoordinates = arg_Request_shipment_origin_namedCoordinates
      arg_Request_shipment.origin = arg_Request_shipment_origin
      dim arg_Request_shipment_destination as ::WebReferences::DATtest::Place
      dim arg_Request_shipment_destination_postalCode as ::WebReferences::DATtest::FmPostalCode
      arg_Request_shipment_destination_postalCode.country = ""
      dim arg_Request_shipment_destination_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_destination_postalCode.code = arg_Request_shipment_destination_postalCode_code
      arg_Request_shipment_destination.postalCode = arg_Request_shipment_destination_postalCode
      dim arg_Request_shipment_destination_cityAndState as ::WebReferences::DATtest::CityAndState
      arg_Request_shipment_destination_cityAndState.city = ""
      arg_Request_shipment_destination_cityAndState.stateProvince = ""
      arg_Request_shipment_destination_cityAndState.county = ""
      arg_Request_shipment_destination.cityAndState = arg_Request_shipment_destination_cityAndState
      dim arg_Request_shipment_destination_namedPostalCode as ::WebReferences::DATtest::NamedPostalCode
      dim arg_Request_shipment_destination_namedPostalCode_postalCode as ::WebReferences::DATtest::PostalCode
      arg_Request_shipment_destination_namedPostalCode_postalCode.country = ""
      dim arg_Request_shipment_destination_namedPostalCode_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_destination_namedPostalCode_postalCode.code = arg_Request_shipment_destination_namedPostalCode_postalCode_code
      arg_Request_shipment_destination_namedPostalCode.postalCode = arg_Request_shipment_destination_namedPostalCode_postalCode
      arg_Request_shipment_destination.namedPostalCode = arg_Request_shipment_destination_namedPostalCode
      dim arg_Request_shipment_destination_coordinates as ::WebReferences::DATtest::LatLon
      arg_Request_shipment_destination_coordinates.latitude = 0
      arg_Request_shipment_destination_coordinates.longitude = 0
      arg_Request_shipment_destination.coordinates = arg_Request_shipment_destination_coordinates
      dim arg_Request_shipment_destination_namedCoordinates as ::WebReferences::DATtest::NamedLatLon
      arg_Request_shipment_destination_namedCoordinates.city = ""
      arg_Request_shipment_destination_namedCoordinates.stateProvince = ""
      arg_Request_shipment_destination.namedCoordinates = arg_Request_shipment_destination_namedCoordinates
      arg_Request_shipment.destination = arg_Request_shipment_destination
      dim arg_Request_shipment_truckStops as ::WebReferences::DATtest::TruckStops
      dim arg_Request_shipment_truckStops_truckStopIds as ::WebReferences::DATtest::TruckStopIds
      dim arg_Request_shipment_truckStops_truckStopIds_ids[0] as ::WebReferences::DATtest::TruckStopId
      arg_Request_shipment_truckStops_truckStopIds.ids = arg_Request_shipment_truckStops_truckStopIds_ids
      arg_Request_shipment_truckStops.truckStopIds = arg_Request_shipment_truckStops_truckStopIds
      dim arg_Request_shipment_truckStops_closest as ::WebReferences::DATtest::ClosestTruckStops
      arg_Request_shipment_truckStops.closest = arg_Request_shipment_truckStops_closest
      dim arg_Request_shipment_truckStops_alternateClosest as ::WebReferences::DATtest::AlternateClosestTruckStops
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin as ::WebReferences::DATtest::Place
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode as ::WebReferences::DATtest::FmPostalCode
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode.country = ""
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode.code = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode_code
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin.postalCode = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_postalCode
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_cityAndState as ::WebReferences::DATtest::CityAndState
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_cityAndState.city = ""
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_cityAndState.stateProvince = ""
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_cityAndState.county = ""
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin.cityAndState = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_cityAndState
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode as ::WebReferences::DATtest::NamedPostalCode
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode as ::WebReferences::DATtest::PostalCode
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode.country = ""
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode_code as ::WebReferences::DATtest::
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode.code = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode_code
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode.postalCode = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode_postalCode
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin.namedPostalCode = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedPostalCode
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_coordinates as ::WebReferences::DATtest::LatLon
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_coordinates.latitude = 0
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_coordinates.longitude = 0
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin.coordinates = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_coordinates
      dim arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedCoordinates as ::WebReferences::DATtest::NamedLatLon
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedCoordinates.city = ""
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedCoordinates.stateProvince = ""
      arg_Request_shipment_truckStops_alternateClosest_alternateOrigin.namedCoordinates = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin_namedCoordinates
      arg_Request_shipment_truckStops_alternateClosest.alternateOrigin = arg_Request_shipment_truckStops_alternateClosest_alternateOrigin
      arg_Request_shipment_truckStops.alternateClosest = arg_Request_shipment_truckStops_alternateClosest
      arg_Request_shipment_truckStops.enhancements = ""
      arg_Request_shipment_truckStops.posterDisplayName = ""
      arg_Request_shipment.truckStops = arg_Request_shipment_truckStops
      dim arg_Request_shipment_rate as ::WebReferences::DATtest::ShipmentRate
      dim arg_Request_shipment_rate_baseRateDollars as ::WebReferences::DATtest::
      arg_Request_shipment_rate.baseRateDollars = arg_Request_shipment_rate_baseRateDollars
      arg_Request_shipment_rate.rateBasedOn = ""
      dim arg_Request_shipment_rate_rateMiles as ::WebReferences::DATtest::
      arg_Request_shipment_rate.rateMiles = arg_Request_shipment_rate_rateMiles
      arg_Request_shipment.rate = arg_Request_shipment_rate
      arg_Request.shipment = arg_Request_shipment
      dim arg_Request_equipment as ::WebReferences::DATtest::Equipment
      arg_Request_equipment.equipmentType = ""
      dim arg_Request_equipment_origin as ::WebReferences::DATtest::Place
      dim arg_Request_equipment_origin_postalCode as ::WebReferences::DATtest::FmPostalCode
      arg_Request_equipment_origin_postalCode.country = ""
      dim arg_Request_equipment_origin_postalCode_code as ::WebReferences::DATtest::
      arg_Request_equipment_origin_postalCode.code = arg_Request_equipment_origin_postalCode_code
      arg_Request_equipment_origin.postalCode = arg_Request_equipment_origin_postalCode
      dim arg_Request_equipment_origin_cityAndState as ::WebReferences::DATtest::CityAndState
      arg_Request_equipment_origin_cityAndState.city = ""
      arg_Request_equipment_origin_cityAndState.stateProvince = ""
      arg_Request_equipment_origin_cityAndState.county = ""
      arg_Request_equipment_origin.cityAndState = arg_Request_equipment_origin_cityAndState
      dim arg_Request_equipment_origin_namedPostalCode as ::WebReferences::DATtest::NamedPostalCode
      dim arg_Request_equipment_origin_namedPostalCode_postalCode as ::WebReferences::DATtest::PostalCode
      arg_Request_equipment_origin_namedPostalCode_postalCode.country = ""
      dim arg_Request_equipment_origin_namedPostalCode_postalCode_code as ::WebReferences::DATtest::
      arg_Request_equipment_origin_namedPostalCode_postalCode.code = arg_Request_equipment_origin_namedPostalCode_postalCode_code
      arg_Request_equipment_origin_namedPostalCode.postalCode = arg_Request_equipment_origin_namedPostalCode_postalCode
      arg_Request_equipment_origin.namedPostalCode = arg_Request_equipment_origin_namedPostalCode
      dim arg_Request_equipment_origin_coordinates as ::WebReferences::DATtest::LatLon
      arg_Request_equipment_origin_coordinates.latitude = 0
      arg_Request_equipment_origin_coordinates.longitude = 0
      arg_Request_equipment_origin.coordinates = arg_Request_equipment_origin_coordinates
      dim arg_Request_equipment_origin_namedCoordinates as ::WebReferences::DATtest::NamedLatLon
      arg_Request_equipment_origin_namedCoordinates.city = ""
      arg_Request_equipment_origin_namedCoordinates.stateProvince = ""
      arg_Request_equipment_origin.namedCoordinates = arg_Request_equipment_origin_namedCoordinates
      arg_Request_equipment.origin = arg_Request_equipment_origin
      dim arg_Request_equipment_destination as ::WebReferences::DATtest::EquipmentDestination
      dim arg_Request_equipment_destination_place as ::WebReferences::DATtest::Place
      dim arg_Request_equipment_destination_place_postalCode as ::WebReferences::DATtest::FmPostalCode
      arg_Request_equipment_destination_place_postalCode.country = ""
      dim arg_Request_equipment_destination_place_postalCode_code as ::WebReferences::DATtest::
      arg_Request_equipment_destination_place_postalCode.code = arg_Request_equipment_destination_place_postalCode_code
      arg_Request_equipment_destination_place.postalCode = arg_Request_equipment_destination_place_postalCode
      dim arg_Request_equipment_destination_place_cityAndState as ::WebReferences::DATtest::CityAndState
      arg_Request_equipment_destination_place_cityAndState.city = ""
      arg_Request_equipment_destination_place_cityAndState.stateProvince = ""
      arg_Request_equipment_destination_place_cityAndState.county = ""
      arg_Request_equipment_destination_place.cityAndState = arg_Request_equipment_destination_place_cityAndState
      dim arg_Request_equipment_destination_place_namedPostalCode as ::WebReferences::DATtest::NamedPostalCode
      dim arg_Request_equipment_destination_place_namedPostalCode_postalCode as ::WebReferences::DATtest::PostalCode
      arg_Request_equipment_destination_place_namedPostalCode_postalCode.country = ""
      dim arg_Request_equipment_destination_place_namedPostalCode_postalCode_code as ::WebReferences::DATtest::
      arg_Request_equipment_destination_place_namedPostalCode_postalCode.code = arg_Request_equipment_destination_place_namedPostalCode_postalCode_code
      arg_Request_equipment_destination_place_namedPostalCode.postalCode = arg_Request_equipment_destination_place_namedPostalCode_postalCode
      arg_Request_equipment_destination_place.namedPostalCode = arg_Request_equipment_destination_place_namedPostalCode
      dim arg_Request_equipment_destination_place_coordinates as ::WebReferences::DATtest::LatLon
      arg_Request_equipment_destination_place_coordinates.latitude = 0
      arg_Request_equipment_destination_place_coordinates.longitude = 0
      arg_Request_equipment_destination_place.coordinates = arg_Request_equipment_destination_place_coordinates
      dim arg_Request_equipment_destination_place_namedCoordinates as ::WebReferences::DATtest::NamedLatLon
      arg_Request_equipment_destination_place_namedCoordinates.city = ""
      arg_Request_equipment_destination_place_namedCoordinates.stateProvince = ""
      arg_Request_equipment_destination_place.namedCoordinates = arg_Request_equipment_destination_place_namedCoordinates
      arg_Request_equipment_destination.place = arg_Request_equipment_destination_place
      dim arg_Request_equipment_destination_area as ::WebReferences::DATtest::Area
      dim arg_Request_equipment_destination_area_stateProvinces[0] as ::WebReferences::DATtest::StateProvince
      arg_Request_equipment_destination_area.stateProvinces = arg_Request_equipment_destination_area_stateProvinces
      dim arg_Request_equipment_destination_area_zones[0] as ::WebReferences::DATtest::Zone
      arg_Request_equipment_destination_area.zones = arg_Request_equipment_destination_area_zones
      arg_Request_equipment_destination.area = arg_Request_equipment_destination_area
      dim arg_Request_equipment_destination_open as ::WebReferences::DATtest::Open
      arg_Request_equipment_destination.open = arg_Request_equipment_destination_open
      arg_Request_equipment.destination = arg_Request_equipment_destination
      arg_Request_equipment.lastUpdate = {09/21/2018 01:02:32 12 pm}
      arg_Request_equipment.numberOfPowerUnits = 0
      arg_Request_equipment.numberOfTeams = 0
      arg_Request_equipment.numberOfCompanyDrivers = 0
      arg_Request_equipment.numberOfOwnerOperators = 0
      arg_Request_equipment.onBoardCommunications = ""
      dim arg_Request_equipment_trailers[0] as ::WebReferences::DATtest::Trailer
      arg_Request_equipment.trailers = arg_Request_equipment_trailers
      arg_Request_equipment.hasAirRide = .f.
      arg_Request_equipment.hasVented = .f.
      arg_Request_equipment.hasHotshot = .f.
      arg_Request_equipment.hasCurtains = .f.
      arg_Request_equipment.hasInsulated = .f.
      arg_Request_equipment.hasConestoga = .f.
      arg_Request_equipment.hasCoilRacks = .f.
      arg_Request_equipment.hasContainerLocks = .f.
      arg_Request_equipment.hasTarps = .f.
      arg_Request_equipment.hasEtrac = .f.
      arg_Request_equipment.hasGarmentRacks = .f.
      arg_Request_equipment.hasPadWrap = .f.
      arg_Request_equipment.hasStraps = .f.
      arg_Request_equipment.hasChains = .f.
      arg_Request.equipment = arg_Request_equipment
      arg_Request.postersReferenceId = ""
      arg_Request.ltl = .f.
      arg_Request.comments = ""
      arg_Request.count = 0
      dim arg_Request_dimensions as ::WebReferences::DATtest::Dimensions
      dim arg_Request_dimensions_lengthFeet as ::WebReferences::DATtest::
      arg_Request_dimensions.lengthFeet = arg_Request_dimensions_lengthFeet
      dim arg_Request_dimensions_weightPounds as ::WebReferences::DATtest::
      arg_Request_dimensions.weightPounds = arg_Request_dimensions_weightPounds
      dim arg_Request_dimensions_heightInches as ::WebReferences::DATtest::
      arg_Request_dimensions.heightInches = arg_Request_dimensions_heightInches
      dim arg_Request_dimensions_volumeCubicFeet as ::WebReferences::DATtest::
      arg_Request_dimensions.volumeCubicFeet = arg_Request_dimensions_volumeCubicFeet
      arg_Request.dimensions = arg_Request_dimensions
      arg_Request.stops = 0
      dim arg_Request_availability as ::WebReferences::DATtest::Availability
      arg_Request_availability.earliest = {09/21/2018 01:02:32 13 pm}
      arg_Request_availability.latest = {09/21/2018 01:02:32 13 pm}
      arg_Request.availability = arg_Request_availability
      dim arg_Request_alarm as ::WebReferences::DATtest::AlarmSearchCriteria
      dim arg_Request_alarm_originRadius as ::WebReferences::DATtest::Mileage
      arg_Request_alarm_originRadius.miles = 0
      arg_Request_alarm_originRadius.method = ""
      dim arg_Request_alarm_originRadius_distance as ::WebReferences::DATtest::Distance
      dim arg_Request_alarm_originRadius_distance_amount as ::WebReferences::DATtest::
      arg_Request_alarm_originRadius_distance.amount = arg_Request_alarm_originRadius_distance_amount
      arg_Request_alarm_originRadius_distance.unit = ""
      arg_Request_alarm_originRadius.distance = arg_Request_alarm_originRadius_distance
      arg_Request_alarm.originRadius = arg_Request_alarm_originRadius
      dim arg_Request_alarm_destinationRadius as ::WebReferences::DATtest::Mileage
      arg_Request_alarm_destinationRadius.miles = 0
      arg_Request_alarm_destinationRadius.method = ""
      dim arg_Request_alarm_destinationRadius_distance as ::WebReferences::DATtest::Distance
      dim arg_Request_alarm_destinationRadius_distance_amount as ::WebReferences::DATtest::
      arg_Request_alarm_destinationRadius_distance.amount = arg_Request_alarm_destinationRadius_distance_amount
      arg_Request_alarm_destinationRadius_distance.unit = ""
      arg_Request_alarm_destinationRadius.distance = arg_Request_alarm_destinationRadius_distance
      arg_Request_alarm.destinationRadius = arg_Request_alarm_destinationRadius
      arg_Request_alarm.ageLimitMinutes = 0
      arg_Request_alarm.maxMatches = 0
      dim arg_Request_alarm_lifetimeMinutes as ::WebReferences::DATtest::
      arg_Request_alarm.lifetimeMinutes = arg_Request_alarm_lifetimeMinutes
      arg_Request_alarm.referenceId = ""
      arg_Request_alarm.notifyAllApplications = .f.
      arg_Request.alarm = arg_Request_alarm
      arg_Request.includeAsset = .f.
      arg_Request.postToExtendedNetwork = .f.
      dim b as System::ServiceModel::BasicHttpBinding		
      
      dim e as System::ServiceModel::EndPointAddress = new System::ServiceModel::EndPointAddress("http://cnx.test.dat.com:9280/wsdl/TfmiFreightMatching.wsdl")
      dim wr as ::WebReferences::DATtest::TfmiFreightMatchingPortTypeClient = new ::WebReferences::DATtest::TfmiFreightMatchingPortTypeClient(b,e)
      wr.Url = "http://cnx.test.dat.com:9280/TfmiRequest"
      dim result as ::WebReferences::DATtest::PostAssetResponse = null_value()
      result = wr.PostAsset(arg_Request)
      showvar(json_generate(result))
      end		
      ranIntoProblem:
      ui_msg_box("Error",error_text_get()+" on line "+error_line_number_get())

      Comment

      Working...
      X