In this:
Value: <@var request$OrderSummary aprefix="" asuffix='' rprefix="" rsuffix="" cprefix="" csuffix="" csep="," rsep=";"> You need type=text: Value: <@var request$OrderSummary aprefix="" asuffix='' rprefix="" rsuffix="" cprefix="" csuffix="" csep="," rsep=";" type=text> From: Fogelson, Steve [mailto:foge...@askics.net] Sent: Monday, July 22, 2019 3:18 PM To: TeraScript-Talk@terascript.com Subject: RE: TeraScript-Talk: Web Service Hi Robert, I have some time to dig into this now and am having a bit of trouble. I must have something simple wrong here. Steve I have placed the following in the Web Call of the export program Post Data tab Arguments Name: PostArg Value: <@var request$OrderSummary aprefix="" asuffix='' rprefix="" rsuffix="" cprefix="" csuffix="" csep="," rsep=";"> To see the results, I email them with the following in the Body of the Email action on the server import program. mypostargnames: <@postargnames><br /> mypostargsarray: <@postarg name="PostArg" type="array"><br /> mypostargstext: <@postarg name="PostArg" type="text"><br /> PostArgArray: <@arg PostArg type="array"><br /> PostArg: <@arg PostArg><br /> The email displays the following: mypostargnames: PostArg mypostargsarray: <@__REF name=OrderSummary userref=__184A07DC9AA3E1895D363564> mypostargstext: <@__REF name=OrderSummary userref=__184A07DC9AA3E1895D363564> PostArgArray: <@__REF name=OrderSummary userref=__184A07DC9AA3E1895D363564> PostArg: <@__REF name=OrderSummary userref=__184A07DC9AA3E1895D363564> From: Robert Shubert <rshub...@tronics.com <mailto:rshub...@tronics.com> > Sent: Friday, July 12, 2019 10:46 AM To: TeraScript-Talk@terascript.com <mailto:TeraScript-Talk@terascript.com> Subject: RE: TeraScript-Talk: Web Service Your assumption about the URL is correct. I would suggest using post arguments since they will be easily available in the server taf as @ARGs The trick then, is your array, you'll need to stringify it. I usually do something like this: <@VAR orderSummary aprefix='' asuffix='' rprefix='' rsuffix='' cprefix='' csuffix='' csep=',' rsep=';'> Because that value will drop into <@ARRAY value=<@ARG …>> however, that assumes there can never be any commas or semicolons in the data. Another idea, since you are only posting 1 order, you could transpose that row. In the Webcall Action Post tab, the top option is for an array. That array must be 2 columns where the first column are argument names and the second column are the values. You can have as many rows as you want. Try this: <@ASSIGN postArgs <@ARRAY value="OrderDetail,@@OrderDetail;SaleCredit,@@SaleCredit;Activity,@@Activity;SalesReceipt,@@SalesReceipt;ToDoItem,@@ToDoItem">> <@FOR stop=<@NUMCOLS array=request$OrderSummary>> <@ADDROWS postArgs <@ARRAY value="@@request$OrderSummary[0,<@CURROW>],@@request$OrderSummary[@@OrderRow,<@CURROW>]">> </@FOR> (same caveat with the commas and semicolons) Once you have that postArgs array, you can pass it to the Webcall Argument Array and TS will take care of the rest. Each row of that array will be an argument available on the server, eg <@ARG OrderDetail> Robert PS. The format you suggest below would be a single block of text delimited by CRLFs. This is doable, but not as highly structured as other options, including what I'm suggesting here. From: Fogelson, Steve [mailto:foge...@askics.net] Sent: Thursday, July 11, 2019 1:15 PM To: TeraScript-Talk@terascript.com <mailto:TeraScript-Talk@terascript.com> Subject: RE: TeraScript-Talk: Web Service Thanks Robert, I have started the project and have a quick question For each order I need to transmit, I have five tables involved. In the web call, I thought I would use the Data field on the Post Data tab. Would the correct format to be used in that field be the following? <@var request$OrderSummary[<@var request$OrderRow>,*]> <@var request$OrderDetail> <@var request$SaleCredit> <@var request$Activity> <@var request$SalesReceipt> <@var request$ToDoItem> Also, I assume the url would be to the taf on the server end to import the data? Thanks Steve From: Robert Shubert <rshub...@tronics.com <mailto:rshub...@tronics.com> > Sent: Thursday, July 11, 2019 1:14 PM To: TeraScript-Talk@terascript.com <mailto:TeraScript-Talk@terascript.com> Subject: RE: TeraScript-Talk: Web Service I think you're going about it the right way. A web service is nothing more than a regular TAF, but one that a computer is going to send a request to, rather than a browser. I wouldn't use the "web service" technology which is soap based, think along the lines of other http APIs you've used that use post arguments or name value pairs. The easiest way to do this is to break the import taf you already have into two parts. The first, running on the laptop, prepares the data for the database, but instead of an INSERT action, it makes a WEBCALL, with the data packaged in some serialized format. The second half, residing on the server, receives that formatted data, parses it and makes the INSERT into the database. Usually you'll want to return a fail/success flag so you can debug problems. I've seen implementations where the actual SQL Insert query is the serialized format. Sort of a SQL RPC. Of course you want to be mindful of security. SSL, password, IP restriction, or best, VPN, should be used. Robert From: Fogelson, Steve [mailto:foge...@askics.net] Sent: Thursday, July 11, 2019 8:05 AM To: TeraScript-Talk@terascript.com <mailto:TeraScript-Talk@terascript.com> Subject: TeraScript-Talk: Web Service Good morning. I have an eCommerce app that is also used as a POS at retail shows. Sometimes the shows are outdoors with limited bandwidth, so I adapted the app to run on it’s own LAN. After the show is over and the laptops are back at the main location, I update the live database with the show database using an import taf I wrote. One show in particular has 40,000 people in attendance. Their mobile phones suck up the available bandwidth during the day, but there is plenty of bandwidth available in the evening to use a hotspot to access the internet. I would like to write a taf running on a cron job on the local LAN that will update the live database over the hotspot. Not sure if I should write a web service utilizing TeraScript (it is in the documentation) on the live database location to receive the db update requests. I have used TeraScript’s Web Call action to access many web services, but have never written a web service. Does anyone have any experience or examples of a web service written in TeraScript or another way of accomplishing what I am trying to do? Thanks Steve Fogelson Internet Commerce Solutions _____ To unsubscribe from this list, please send an email to lists...@terascript.com <mailto:lists...@terascript.com> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to lists...@terascript.com <mailto:lists...@terascript.com> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to lists...@terascript.com <mailto:lists...@terascript.com> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to lists...@terascript.com <mailto:lists...@terascript.com> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to lists...@terascript.com <mailto:lists...@terascript.com> with "unsubscribe terascript-talk" in the body. ---------------------------------------- To unsubscribe from this list, please send an email to lists...@terascript.com with "unsubscribe terascript-talk" in the body.