Re: Entity Selection List Box - Selected Row Color

2020-02-18 Thread Jerker Stenberg via 4D_Tech
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

2020-02-18 Thread Keisuke Miyako via 4D_Tech
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

2020-02-18 Thread Keisuke Miyako via 4D_Tech
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

2020-02-18 Thread Eric via 4D_Tech
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

2020-02-18 Thread Jason Hect via 4D_Tech

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?

2020-02-18 Thread Kirk Brooks via 4D_Tech
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

2020-02-18 Thread Eric via 4D_Tech
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

2020-02-18 Thread JasonH via 4D_Tech
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
**