Re: Entity Selection List Box - Selected Row Color
Hi Eric Maybe not the most handsome/best way to do it, but the first thought that came through my mind. How about using a Row Background Color Array? You will have to loop the whole selection and set color for the selected/highlighted ones. Regards, Jerker -Ursprungligt meddelande- Date: Tue, 18 Feb 2020 12:37:59 -0700 From: Eric To: 4d_tech@lists.4d.com Subject: Entity Selection List Box - Selected Row Color Message-ID: Content-Type: text/plain; charset="UTF-8" After a lifetime of ALP development I am venturing into entity selection List Box(s) for the first time; there is a learning curve. v17r6 in a Citrix environment. I have been able to clear most of the hurdles using the HDIs and researching iNUG Archives; but I have hit the wall on row selection. I have a Form Page with 3 entity selection List Boxes; one of them multi selection. When the objects have focus, all is well with the visibility of the selected rows. When the objects lose focus, the highlighted row(s) lose the highlight color and change to a shade of light gray that is not perceptible to the human eye on Citrix. I’ve searched high and low for a way to change the color of the highlight in the object without focus. I see where I can check the “Hide Selection Highlight” property but have not been successful in being able to set or maintain a visible color on the selected rows of the objects without focus. If someone has a suggestion or can point me to an example to implement this I would be appreciative. -- ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: Entity Selection List Box - Selected Row Color
the idea is to set the cell (not text) background colour for each row, using meta expression (for collection), array (for array), or expression (for current or named selection) you can find an example here https://blog.4d.com/customize-highlight-color-upon-listbox-row-selection/ > On Feb 19, 2020, at 4:37, Eric via 4D_Tech <4d_tech@lists.4d.com> wrote: > > I can check the “Hide Selection Highlight” property but have not > been successful in being able to set or maintain a visible color on the > selected rows of the objects without focus. ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: Web Services - Receiving Complex Type
SOAP (web services) were introduced in v2003, when 4D had minimal XML commands and no HTTP client commands. the wizard on the client side and declaration on the server side are great, in that it takes care of the HTTP and XML layers, but if the task seems beyond their capability then perhaps you might want to switch to HTTP Request, XML commands and/or PROCESS 4D TAGS. ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: Web Services - Receiving Complex Type
I make and consume WS calls all day between 4D and SAP ECC/SAP CRM. My ABAP guy continually reminds me that SAP does not like complex data types; although he claims Text arrays are acceptable. I have not not been able to get Text arrays to work. On the send side, I send well formed XML with multiple headers and 100's of records without issue. It takes a little work and a good ABAP programmer but it is rock solid once you get it going. The XML Structure is a little funky when consuming from SAP; depending on the data complexity. I now convert everything from XML to JSON. Here is a great Tech Note if you are interested: https://kb.4d.com/assetid=77416 On Tue, Feb 18, 2020 at 5:00 PM Jason Hect via 4D_Tech <4d_tech@lists.4d.com> wrote: > > Hi David, > > Thanks for the response. Yeah, this is basically what I am proposing we > do. I'll define a blob parameter (and now I see 4D can define XML or DOM > SOAP parameters too!), which they pass everything too. I take the contents > of that single parameter and parse it out. > > What the SAP team is telling me is I should be able to define a "record" > (for lack of better term), which might have numerous parameters. These can > be int/real/string/boolean/array/etc. That would all be for a single > record entry. But if SAP has 10 "records" to send, they don't want to call > the web service 10 times, but rather call the web service once, with all 10 > records in that single call. > > Normally 4D makes it so easy to create and consume web services, but this > is beyond my knowledge of SOAP and Web Services. I'm 99% sure 4D can't do > this, but was hoping for a definitive answer so I can let the SAP team know > and move onward with other solutions. > > Hope that makes sense and grateful for any other insight you might have. > > Thank You! > Jason > > -Original Message- > From: "David Ringsmuth" > Sent: Tuesday, February 18, 2020 10:38am > To: "4D iNug Technical" <4d_tech@lists.4d.com> > Cc: "JasonH" > Subject: RE: Web Services - Receiving Complex Type > > > > > Jason, > > I use 4D’s SOAP Webservice to receive hierarchical packets of records > defined in XML. > > I’m not clear on your question, so please forgive me if I fail to answer > it: > > C_TEXT(tMonitorPswd;tMonitorEmail;tCurrentMachine;tCurrentMachineOwner) > C_TEXT($tMonitorPswd;$tMonitorEmail;$tCurrentMachine;$tCurrentMachineOwner) > C_LONGINT(ws_errorCode) > C_TEXT(ws_errorText) > C_LONGINT($ws_errorCode) > C_TEXT($ws_errorText) > ws_errorCode:=0 // 0=No Error > ws_errorText:="" > > C_BLOB(xBlob;xResult;$xBlob;$xResult) > ARRAY TEXT(atProviderIDs;0) > > SOAP_Err_Handle_Install (1) > ws_Debug > > //compiler_web > > SOAP DECLARATION(tMonitorEmail;Is text;SOAP input;"MonitorEmail") > SOAP DECLARATION(tMonitorPswd;Is text;SOAP input;"MonitorPswd") > SOAP DECLARATION(tCurrentMachine;Is text;SOAP input;"CurrentMachine") > SOAP DECLARATION(tCurrentMachineOwner;Is text;SOAP > input;"CurrentMachineOwner") > > SOAP DECLARATION(xBlob;Is BLOB;SOAP input;"xBlob") > > SOAP DECLARATION(fAuthentic;Is boolean;SOAP output;"Authentic") > SOAP DECLARATION(ws_errorCode;Is longint;SOAP output;"ws_ErrorCode") > SOAP DECLARATION(ws_errorText;Is text;SOAP output;"ws_ErrorText") > SOAP DECLARATION(xResult;Is BLOB;SOAP output;"xResult") > SOAP DECLARATION(nCnt;Is longint;SOAP output;"nCnt") > fAuthentic:=Monitor_Authenticate_Local > (tMonitorEmail;tMonitorPswd;tCurrentMachine;tCurrentMachineOwner;Current > method name) > $fAuthentic:=fAuthentic > > > ws_Declare_Cnts ("Init") > SOAP DECLARATION(nProviderCnt;Is longint;SOAP output;"nProviderCnt") > SOAP DECLARATION(nLicenseCnt;Is longint;SOAP output;"nLicenseCnt") > SOAP DECLARATION(nMenusCnt;Is longint;SOAP output;"nMenusCnt") > SOAP DECLARATION(nHome_VisitCnt;Is longint;SOAP output;"nHome_VisitCnt") > SOAP DECLARATION(nParentCnt;Is longint;SOAP output;"nParentCnt") > SOAP DECLARATION(nChildCnt;Is longint;SOAP output;"nChildCnt") > SOAP DECLARATION(nMeal_CountCnt;Is longint;SOAP output;"nMeal_CountCnt") > SOAP DECLARATION(nTrainingCnt;Is longint;SOAP output;"nTrainingCnt") > SOAP DECLARATION(nWorksheetCnt;Is longint;SOAP output;"nWorksheetCnt") > > If ($fAuthentic) > READ ONLY(*) > > C_TEXT($xml;$xPath;$xml_root;$tRIS;$tTableNo) > C_POINTER($pTable) > > $xPath:="/Providers" > $xml_root:=xmlRec_NewRecord ("Providers") > $pTable:=->[Provider] > $tTableNo:=String(Table($pTable)) > > > ARRAY TEXT($atProviderIDs;0) > BLOB TO VARIABLE(xBlob;$atProviderIDs) > > QUERY WITH ARRAY([Provider]ID;$atProviderIDs) > > $tRIS:=String(Records in selection([Provider])) > DOM SET XML > ATTRIBUTE($xml_root;"TableNo";$tTableNo;"Selection";$tRIS) > > C_LONGINT($i;$k;nCnt) > nCnt:=0 > nProviderCnt:=Size of array($atProviderIDs) > >
RE: Web Services - Receiving Complex Type
Hi David, Thanks for the response. Yeah, this is basically what I am proposing we do. I'll define a blob parameter (and now I see 4D can define XML or DOM SOAP parameters too!), which they pass everything too. I take the contents of that single parameter and parse it out. What the SAP team is telling me is I should be able to define a "record" (for lack of better term), which might have numerous parameters. These can be int/real/string/boolean/array/etc. That would all be for a single record entry. But if SAP has 10 "records" to send, they don't want to call the web service 10 times, but rather call the web service once, with all 10 records in that single call. Normally 4D makes it so easy to create and consume web services, but this is beyond my knowledge of SOAP and Web Services. I'm 99% sure 4D can't do this, but was hoping for a definitive answer so I can let the SAP team know and move onward with other solutions. Hope that makes sense and grateful for any other insight you might have. Thank You! Jason -Original Message- From: "David Ringsmuth" Sent: Tuesday, February 18, 2020 10:38am To: "4D iNug Technical" <4d_tech@lists.4d.com> Cc: "JasonH" Subject: RE: Web Services - Receiving Complex Type Jason, I use 4D’s SOAP Webservice to receive hierarchical packets of records defined in XML. I’m not clear on your question, so please forgive me if I fail to answer it: C_TEXT(tMonitorPswd;tMonitorEmail;tCurrentMachine;tCurrentMachineOwner) C_TEXT($tMonitorPswd;$tMonitorEmail;$tCurrentMachine;$tCurrentMachineOwner) C_LONGINT(ws_errorCode) C_TEXT(ws_errorText) C_LONGINT($ws_errorCode) C_TEXT($ws_errorText) ws_errorCode:=0 // 0=No Error ws_errorText:="" C_BLOB(xBlob;xResult;$xBlob;$xResult) ARRAY TEXT(atProviderIDs;0) SOAP_Err_Handle_Install (1) ws_Debug //compiler_web SOAP DECLARATION(tMonitorEmail;Is text;SOAP input;"MonitorEmail") SOAP DECLARATION(tMonitorPswd;Is text;SOAP input;"MonitorPswd") SOAP DECLARATION(tCurrentMachine;Is text;SOAP input;"CurrentMachine") SOAP DECLARATION(tCurrentMachineOwner;Is text;SOAP input;"CurrentMachineOwner") SOAP DECLARATION(xBlob;Is BLOB;SOAP input;"xBlob") SOAP DECLARATION(fAuthentic;Is boolean;SOAP output;"Authentic") SOAP DECLARATION(ws_errorCode;Is longint;SOAP output;"ws_ErrorCode") SOAP DECLARATION(ws_errorText;Is text;SOAP output;"ws_ErrorText") SOAP DECLARATION(xResult;Is BLOB;SOAP output;"xResult") SOAP DECLARATION(nCnt;Is longint;SOAP output;"nCnt") fAuthentic:=Monitor_Authenticate_Local (tMonitorEmail;tMonitorPswd;tCurrentMachine;tCurrentMachineOwner;Current method name) $fAuthentic:=fAuthentic ws_Declare_Cnts ("Init") SOAP DECLARATION(nProviderCnt;Is longint;SOAP output;"nProviderCnt") SOAP DECLARATION(nLicenseCnt;Is longint;SOAP output;"nLicenseCnt") SOAP DECLARATION(nMenusCnt;Is longint;SOAP output;"nMenusCnt") SOAP DECLARATION(nHome_VisitCnt;Is longint;SOAP output;"nHome_VisitCnt") SOAP DECLARATION(nParentCnt;Is longint;SOAP output;"nParentCnt") SOAP DECLARATION(nChildCnt;Is longint;SOAP output;"nChildCnt") SOAP DECLARATION(nMeal_CountCnt;Is longint;SOAP output;"nMeal_CountCnt") SOAP DECLARATION(nTrainingCnt;Is longint;SOAP output;"nTrainingCnt") SOAP DECLARATION(nWorksheetCnt;Is longint;SOAP output;"nWorksheetCnt") If ($fAuthentic) READ ONLY(*) C_TEXT($xml;$xPath;$xml_root;$tRIS;$tTableNo) C_POINTER($pTable) $xPath:="/Providers" $xml_root:=xmlRec_NewRecord ("Providers") $pTable:=->[Provider] $tTableNo:=String(Table($pTable)) ARRAY TEXT($atProviderIDs;0) BLOB TO VARIABLE(xBlob;$atProviderIDs) QUERY WITH ARRAY([Provider]ID;$atProviderIDs) $tRIS:=String(Records in selection([Provider])) DOM SET XML ATTRIBUTE($xml_root;"TableNo";$tTableNo;"Selection";$tRIS) C_LONGINT($i;$k;nCnt) nCnt:=0 nProviderCnt:=Size of array($atProviderIDs) Web_Log_SOAP (Current method name;"Getting "+String(Size of array($atProviderIDs))+" Provider(s) and Related") For ($i;1;Size of array($atProviderIDs)) QUERY([Provider];[Provider]ID=$atProviderIDs{$i}) Case of : (Records in selection([Provider])=0) ws_errorCode:=-1 ws_errorText:="No Provider record found for ID "+$atProviderIDs{$i} : (Records in selection([Provider])>1)
Anyone have experience working with EdExpress?
I have a project with a small private college that needs to interface with EdExpress. If anyone has experience I would very much appreciate hearing from you. I have none at the moment so even a little suggestion about how to get started will be appreciated. Either here or off list. Thanks! -- Kirk Brooks San Francisco, CA == ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Entity Selection List Box - Selected Row Color
After a lifetime of ALP development I am venturing into entity selection List Box(s) for the first time; there is a learning curve. v17r6 in a Citrix environment. I have been able to clear most of the hurdles using the HDIs and researching iNUG Archives; but I have hit the wall on row selection. I have a Form Page with 3 entity selection List Boxes; one of them multi selection. When the objects have focus, all is well with the visibility of the selected rows. When the objects lose focus, the highlighted row(s) lose the highlight color and change to a shade of light gray that is not perceptible to the human eye on Citrix. I’ve searched high and low for a way to change the color of the highlight in the object without focus. I see where I can check the “Hide Selection Highlight” property but have not been successful in being able to set or maintain a visible color on the selected rows of the objects without focus. If someone has a suggestion or can point me to an example to implement this I would be appreciative. ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Web Services - Receiving Complex Type
Forgive the double post, but my first was in the general "4D" forum and 4D tech support suggested posting in the "4D Tech" forum. I'm not sure if people look at both forums, hence the double post. --- I need to define a 4D web service called by SAP sending multiple records in a single request. In a nutshell 4D will be uploading a bunch of sales orders to SAP, and SAP will invoice and return all the invoice numbers in one request. Something like: I don't see any way to do this when defining the web service in 4D with SOAP DECLARATION? Anything I do is defined as a single occurrence only. I suggested having SAP send 2 matched arrays, which I can do by declaring the input as type array, but they don't want to do that. -- Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html ** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **