NetTalk Central

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - jking

Pages: 1 [2] 3 4 ... 8
16
Web Server - Ask For Help / Save form as user selects tabs?
« on: March 04, 2024, 06:04:50 PM »
Hello everyone,

     I have a complex form with multiple tabs and many fields on each tab. Using NT 14.13.

     A user has requested that the form save "partial" results to the file as they select the many tabs.  Then, when done, they will select the Save button for a final save to disk.  I created a local routine that I try calling from the Tab Changed embed:

SaveTabContents     ROUTINE
 
    Access:CRF001_Surgeon.Open()
    Access:CRF001_Surgeon.UseFile()
    CRF001Sx:Study_ID = p_web.GSV('CRF001Sx:StudyID_key')
   
    Access:CRF001_Surgeon.Fetch(CRF001Sx:StudyID_key)
   
    p_web.SessionQueueToFile(CRF001_Surgeon)
   
    Access:CRF001_Surgeon.TryUpdate()
    Access:CRF001_Surgeon.Close()
   
    EXIT

     So far, this does not update the file.  Maybe a problem with the code in the routine or I'm using the wrong embed to call this?  Any thoughts?

Thanks,

Jeff King

17
Web Server - Ask For Help / Troubles with conditional hide filter.
« on: February 20, 2024, 05:22:57 PM »
Hello,

     I'm struggling with how to construct the conditional hide on a field in a NT app.  This is what I would like:

CRF002Rad:Recommend_RT_PBI  <> 'Other'   OR
CRF002Rad:Recommend_RT_WBI <> 'Other'

I know this has to be a string so I have tried the following:

'CRF002Rad:Recommend_RT_PBI  <> Other OR ' &
'CRF002Rad:Recommend_RT_WBI <> Other'

Still getting errors.  Can anyone help me construct this properly?

Thanks,

Jeff King

18
Web Server - Ask For Help / New API troubles
« on: February 19, 2024, 06:01:08 PM »
Hello all,

     I'm trying a new API in my app.  I have a Users file, and I want to use an API to see if there is an email address in this file.  I want to do a get, see if the email is in the file and then return three fields. 

     On the Parameters tab, I set the parameter type to table, set the table to Users.tps, choose the unique key on the email field, and then check Allow Read.

     On the Returns tab, I set the three fields in the Users table I want to return.  They are:  Usr:EMail, Usr:Access_List and Usr:AcctStatus

The response I get back is:

{
   "EDC_Users_response" : {
      "Usr:EMail" : "",
      "Usr:Access_List" : "",
      "Usr:AcctStatus" : ""
   }
}

     In the "Try It" section of the API documentation, HTTP GET (JSON Response), I set the Usr:Email field to jking@health.usf.edu and this email record does exist in the Users tps file.  I would expect the get to succeed and return the three fields.  Still, I get empty fields.  I can't seem to find where I'm going wrong.  Any thoughts?

Thanks,

Jeff King

19
Web Server - Ask For Help / Help with NT 14.13 API
« on: January 29, 2024, 02:39:32 PM »
Hello,

     I'm having trouble getting started with a new API in my NT 14.13 app.  A laboratory will build an API on their end, and send an Institution ID (eg. S01) to my app.  I want my API to take this Institution ID and do a lookup into an Institution.tps file on my server. 

     If the Institution ID is found, I want to call an Insert to create a new record in an Enrollment.tps file.  During the insert and creation of a new record, a Study ID field will be created from the Institution ID and an autoincrementing field called Patient ID.  The Study ID, for example, would be something like S01-0001.  If a record is successfully created with this new Study ID, the Study ID then needs to be sent back to the client API.

     If the Institution ID is not found, then an error message must be sent back to the Client API.

     I have added a API service and method to my app but I'm struggling on what do add to the General, Parameters and Return tabs on the API Method template.  Can anyone provide me with some steps on how to proceed?

Thanks,

Jeff King

20
Web Server - Ask For Help / NT 14.13 Host exe app issue
« on: January 05, 2024, 05:41:00 PM »
Hello Bruce,

     I'm having a bit of trouble with the host.exe app (C11.1.13855 and NT 14.13).  I have it loaded into a Compile Manager app created by Handy Tools.  The Compile Manager indicates a build error with the following message:

--------------------------------------
ERROR: Invalid syntax. Default option is not allowed more than '1' time(s).
Type "TIMEOUT /?" for usage.
---------------------------------------

Is there anywhere in the Host EXE, or other NT 14.13 apps, that deals with DOS batch files and uses the "TIMEOUT /?" command? 

Note, the Host EXE does actually get compiled properly, as do all my other NT apps, I have in the Compile Manager.  It's just that the Compile Manager app indicates a failed build when in fact the build did succeed.  Gus at Handy Tools thinks it is due to the Host EXE using a DOS batch file somewhere.  Any thoughts on this?

Thanks,

Jeff





21
Web Server - Ask For Help / NT 14.04, Web19 example app issue
« on: November 17, 2023, 05:10:15 PM »
Hi Bruce,

     I'm trying to look at the Web19 example app.  I get it compiled but when I run it and use a local browser (127.0.0.1:88) to view it, I see the screen in the attached image web19 server.png.  There is very little code generated when viewing the page source.  In the app itself, the only odd thing I see is it appears to be linking in ClaNetl.lib, as seen in the attached image web19 lib.png.  Is this linking in the "Legacy" version of the NT templates?
     Other example apps and my own production apps link in ClaNet.lib.  Any suggestions about what is wrong here and how to fix?

Thanks,

Jeff King

22
Web Server - Ask For Help / NT web app with multi-select drop list
« on: November 07, 2023, 08:00:35 AM »
Hello,

     Using a drop list control, I would like to select multiple items and have the drop control "remember" the items selected.  Currently, when multiple items are selected the target field is set to:

     ;|;multiple;|;

     Bruce showed some code on how to query out the multiple selections in a previous post on August 21 2023.  The problem with this is that the target field still has:  ;|;multiple;|; and this will not work when we query the file for the results...we would expect to see the items selected in the target field.  Also, when opening the form again, the drop does not display the items selected.

     When multiple items are selected, the drop list should store them in the target field, separated by a comma, or some other separator character.  Then, when opening the form again, the user would see the items selected in the target field.  It would also be nice to have a selection limit property. For example, limit the user to 3, 4 or 5 selections from long drop lists.

     I mentioned all this in an earlier post on Nov 4th, and Bruce indicated he would look into this after the CIDC.  While waiting, I thought I would see if anyone had thoughts on how to work around this in the interim. 

     Currently I use check box controls for each item to select.  See attached image.  This takes a lot of screen real estate, and there is one field in the tps file for each checkbox item.  With a multi-select drop list I could have one field in the tps file and one control on the form.

     Anyone have thoughts on how to approach this better, until the drop list can do this?

Thank you,

Jeff King

23
Hi Bruce,

     I have a client that uses LastPass password manager.  It is an extension of his Chrome browser.  It seems LastPass is filling in the user name and password and auto-submitting the login form.  It then repeats this over and over.  See the attached screen shot of the web log from the Host.exe.  The user has disabled autofill/auto submit in the LastPass settings and that seems to resolve the issue for now.  The user claims this did not happen when the host.exe and apps were on T 12.41.  I have two questions:

1.  Can you think of a reason why this would happen with NT 14.04 and not NT 12.41?  Note I'm not sure this did happen with NT 12.41, but wanted to ask anyway.
2.  Users who insist on using password managers can configure (turn off) auto fill/submit globally or for specific sites.  However, I would like a way to control this in my NT apps.  Is there a way to prevent autofill of NT password fields?

Thanks,

Jeff King

24
Web Server - Ask For Help / Question, Multi-Site host NT 14.04
« on: October 16, 2023, 09:55:09 AM »
Hi Bruce,

     I have been re-reading the NetTalk Book, 4th edition.  On pages 284-285 you discuss how to handle data table locations.  Here you mention that each table needs a full pathname variable set, for example !glo:customersFileName.  You recommend it be threaded.  I have multiple apps successfully running in the Host.exe without using a full pathname variable.  I simply use the file name as seen in the example image attached.  Then, in the WebHandler, ProcessLink embed I use: 

         crf001{prop:name} = clip(self.site.appPath) & 'crf001.tps'

I do this for all files in my DLL apps.  Is this the wrong way to do things?  Is a full pathname variable necessary?

Thanks,

Jeff King

25
Hi Bruce,

     I updated 5 dll apps and the Multi-Site host app from NT 12.41 to 12.61.  I tested each locally on port 88 and all seems to work as expected.  There were no changes to the apps, just recompiled all in the newer NT 12.61.  I moved the apps and the host to a California server and tested from my location in Florida.  A user in Australia opens one of the apps and as I watch the log as they move through the app, the host.exe just closes, with no error messages.
     I have the WebServer and WebHandler prototypes set properly with the Name attribute.  All the dll apps and the host are compiled with the same version, NT 12.61. 
     I did see a post here from 10-28-2012 that having the SelfService template in a dll could cause a similar issue.  Is this still the case?  Otherwise, I cant think of anything else to check.  Any other suggestions?

Thanks,

Jeff King

26
Web Server - Ask For Help / Multi-select drop
« on: August 20, 2023, 04:32:54 PM »
Hi everyone,

     I have a drop with 13 entries in it.  I would like to use the multi-select feature and return the user selections to the target field.  The user is required to select 3 items from the drop and no more.  When I select the "Allow Multiple Selections" option on the template, the drop starts in the open state on the form.  I can select multiple items but nothing is returned except the following:  ;|;multiple;|;

I would expect it to return the selected items.  Any thoughts on hove to make this work?

Thanks,

Jeff King

27
Web Server - Ask For Help / Web Service question, part 2
« on: December 20, 2022, 05:39:26 PM »
Hi Bruce,

          Two years ago I posted about creating a web service, and decided to add the web service (API) to an existing NT app.  This has worked very well.  I store user credentials in a tps file with the password stored as a salted hash.  Authentication is done with code in the WebHandler Authenticate method.  Users can log into the NT app and use the API, all with the same login and password.

          I have a user who now wants to create their own program using R-Code, to send data to the NT App via the API.  Here is a sample of their R-code:

          response <- POST(url=paste0(host,path),
                 accept("application/json"),
                 content_type("application/json"),
                 authenticate(user,passwd),
                 #add_headers(Authorization=paste0("Basic ",auth)),
                 body=request)


          Using their username and password, they successfully add data to the NT app.  There won't be any user interface involved, just their R-Code running from another app they created, to send data to my NT App via the included API (Web Service).  However, the user has a concern about "hardcoding" their username and password into the R-code they created.  I have the following questions:

1.  Is this a valid concern, coding the username and password in their R-code?

2.  Is this technique, using a username and password to access a web service/API, the preferred way?

3.  I use another unrelated API, where I send a key/code to the API.  It does not involve a username and password.  I'm not sure how or if this can be done with a NT API/Web Service.  Can this be done in NT?  If it can, is it a better way to authenticate?

Thanks,

Jeff King


28
Hi Bruce,

     Two years ago I posted about building a NT app to listen for forms and form data coming from DocuSign.  It has worked well for two years and I continue to receive form data daily.  You mentioned previously that this is essentially a Webhook scenario, where DocuSign acts as a client and sends me a "request" when one is available.  My NT Service app (listener) acts as the server.
     Today, my local University DocuSign Administrator emailed saying DocuSign has an issue.  Here is what he received from DocuSign:

"Information from DocuSign:


SUMMARY:
This email is to inform you that your account has been identified for containing a DocuSign Connect configuration that is no longer working or has not been configured to the HTTP standards we require to be considered a successful configuration. This email provides important information and resources to assist you with removing or correcting this configuration. Failure to complete this update by this date may result in an interruption of this service.

OVERVIEW:
Administrators will often set up testing configurations and then forget that they have an active configuration that they are not intending to use. When this is done in our demo environment we automatically disable a configuration14 days after it begins to fail. Starting in September 2022 we are going to begin implementing this same protocol within our production environments.

CONFIGURATION ID(s):
11118409, 11118409
Here are the configuration IDs on this account that will need to be addressed.

UPDATE OPTIONS:
To review the Connect Configurations go to your Connect Dashboard for your account. If you find that these configurations are no longer relevant or not being used you can select the Actions button to the right of the configuration and select the Deactivate or remove it entirely by using the Delete option from the drop-down menu.

If you find that your listener appears to be working but the configuration Id for this listener has been identified as failing your listener may not be reporting a http 200 message back to DocuSign as we require. To review best practices for healthy Connect configurations, see the API Usage Guidelines.

Disabling a configuration stops Connect from sending new event messages to the endpoint. It does not affect API access to those envelopes, templates, or clickwraps. After you address the issue, you can reactivate the configuration."

     


     I checked the DocuSign API Usage Guidelines and here is the entry for web hooks:

"Webhooks

When receiving webhook notifications from DocuSign, your computer is the server. DocuSign makes POST requests to your server.

Status: your server must be designed to always return a 200 status response to DocuSign when the message is successfully received. If your application does not need a particular notification message, it should respond with a 200 to DocuSign, then discard the message.

Availability: your server should be designed for 99% or better availability. It can have limited maintenance windows. It should be designed to be available 24 hours a day, 7 days a week. If this is difficult to achieve, you can use a PaaS (cloud) system to receive the messages from DocuSign and buffer them for your application. This configuration also enables your application server to receive the notification messages behind your firewall with no changes to your firewall.

Speed: your server should be designed to respond to each request from DocuSign within five seconds. Your server should use an asynchronous architecture: add incoming notification messages to an internal non-volatile queue, then send a 200 response to DocuSign. Asynchronously, one or more worker processes should process the messages from the queue."

   
     I'm not sure I have all the information I need yet, but thought I would post here to get your input.  In the guidelines above, it mentions that the NT Service app (server/listener) should return a 200 status response to DocuSign when the message is received successfully.  Does a NT Service app do this automatically or do I need to add something to do this?  I'm not sure where to do this if it is not automatic.

Thanks,

Jeff King




29
Web Server - Ask For Help / WebService Method, security
« on: August 12, 2022, 06:02:00 PM »
Hello all,

     Working with adding a NetWebServiceMethod to my NT 12.41, C11.13505 app.  I set the security tab on the NetWebService to require the user to log in.  I see two problems:

1.  When I type the URL to the WebServiceMethod, directly into the browser, such as:

                      https://www.myserver.org/databasePathology

I do see a login screen (login.png).  I have a demo user set up but when I type the user name and password, no login occurs and the login screen remains.

2.  When I call the URL, from a menu item, from within a logged in session of the app, I see all the generated documentation for the WebService.  I tried using the REST GET (JSON RESPONSE) item "Try It Live" (live.png).  I enter the user name and password and an ID of a record to "get" but I always get the response seen in the image.  There is a record in the pathology.tps file.

Any thoughts on what I might have missed in the configuration of the method, or things to check?

Thanks,

Jeff King

30
Web Server - Ask For Help / Radio buttons, NT 12.19 vs NT 12.41
« on: May 18, 2022, 03:59:12 PM »
Hi Bruce,

     I recently converted a number of NT 12.19 apps to NT 12.41. 

     In a NT 12.19 app, I have a form with 4 radio buttons, as seen in image RB 1219.png.  It stores the value in a field called Consent.  The dictionary is set to default Consent to 'No'.  When inserting a record, no radio button is selected, the Consent field defaults to 'No', and a record can be saved.
 
     In the NT 12.41 version of this app, when inserting a record, no radio button is selected, the Consent field defaults to 'No', and a record cannot be saved.  It genertaes an invalid error.  I find I must now include a fifth radio button for the option 'No', as seen in image RB 12.41.png.

     It seems something has changed with radio buttons between NT 12.19 and NT 12.41.  Any thoughts on this?

Thanks,

Jeff

Pages: 1 [2] 3 4 ... 8