Date   

Help needed on error in XPI data mapper

Bas van Drunen <bas.vandrunen@...>
 

Hello,

(Not sure if this is the correct user group, but my question related to magic XPI)
When "Replication" in the XPI data mapper is set to yes and the repeated XML node has a value and an attribute the XML created by the data mapper is invalid.

Has anyone a solution to this or a workaround that will prevent this error?
(The XSD files used a the OAGIS xsd files.)



Below the created xml file:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
 <bas xmlns="http://www.openapplications.org/oagis/10" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Description#1>description1</Description#1>
  <Description typeCode="type1"></Description>
  <Description#2>description2</Description#2>
  <Description typeCode="type2"></Description>
 </bas>
 
This is what I expect to be created:
  <Description typeCode="type1">description1</Description>
  <Description typeCode="type2">description2</Description>


Azure problem, no magic problem

Jacques
 

Hello guys,
do someone use Azure ?
i need to transfer files between a lot of computer, and most of time off-line. that's why i will use Azure as a mail-box.
But, if the transfer of these Magic-files works with the AzCopy utility, i cannot manage to set up correctly the AzureExplorer.
could anyone spend 10-15 minute on either TeamViewer or AnyDesk to help me ???
thanks in advance 
Jacques


Re: Database Encryption

Andreas Sedlmeier
 

Hi Graham,

I would have doubts if a bank would accept this as a solution. Its security by obscurity at the end and you can basically not answer any question about minimum encryption standards because its not documented and-or kept a secret.

There's however solutions which allow to add encryption at rest transparently and do not require you to change your application or database. Its stuff like following and that would comply with the standards then https://www.thalesesecurity.com/products/data-encryption/vormetric-transparent-encryption

There's more like that, that was just the first hit for a google search. I could imagine its pretty pricey so probably you are better off when you think about migrating away from Pervasive and chose MySQL or so, which does allow to comply with security standards, ..

Andreas


Re: Database Encryption

Graham White
 

Thanks guys for your help that answers everything.

regards
Graham


Re: Database Encryption

Steven Blank
 

Graham,

You do not need to change versions of Magic to implement Btrieve Owner Names; Magic has supported owner names, aka, Access Keys, since forever.

To encrypt your application's database, login to the Studio as SUPERVISOR and create a new Secret Name in the Secret Names Repository. While Magic allows you to enter more than eight characters, Btrieve Owner Names are only allowed to be eight characters in length, so if you make the Secret Name's translation longer than eight characters, only the first eight will be significant. Use something wild for the translation, something like "Y!ntT5jB" (without the double quotes). If you really want to really knock yourself out, use something equally as wild for the Secret Name itself.

In your application's Data Sources Repository, assign the new Secret Name (NOT the translation) to each table's Access Key property. To do this, highlight the table in the list and press Alt+Enter to open the Data Source Properties dialog. On the Advanced tab, enter the Secret Name (NOT the translation) into the box labelled Access Key, change Encrypt Table to Yes, and click OK to save the change. When you move off the table to the next table in the repository, Magic will prompt "Should access to the table require an Access Key?" Click Yes. It only takes a second to add an owner name; encryption, however, will take some time, depending on the size of the file.

After you perform these steps in your development system, you'll obviously need to deploy the new ECF and user security file (where Secret Names are stored) to the customer's site, and then encrypt the customer's data files, too. In this case, I would employ one of Pervasive's Maintenance Utilities to add the owner name and encrypt the customer's data files.

In the GUI version of the Btrieve Maintenance Utility (w32maint.exe), use Options, Set - Clear Owner Name. One at a time, select a data file; under the Set Owner option, enter the secret name TRANSLATION in the New Owner box. Check "Encrypt data in file." DO NOT CHECK "Permit read-only access without an owner name." DO NOT CHECK "Long Owner Name". Click Execute. Do this for each data file.

If, instead, you use the command line version of the Btrieve Maintenance Utility (butil.exe), you can optionally feed it a text file of commands to add owner names to and encrypt all data files at once. In the text file, list each command separately as follows:

-setowner file0001.dat /OY!ntT5jB 2 <end>
-setowner file0002.dat /OY!ntT5jB 2 <end>
-setowner file0003.dat /OY!ntT5jB 2 <end>
...
-setowner filennnn.dat /OY!ntT5jB 2 <end>

The data files' new owner names follow the /O switch with no space between.The last argument is the "access level" argument; specifying "2" requires the owner name to be supplied for both reads AND writes, and encrypts the data.

Finally, supposing the commands file is named commands.txt, in order to execute the commands, change to the directory where the data files are stored and execute the following at the command line:

C:\>BUTIL @commands.txt output.txt

Appending a filename to the end, in this case "output.txt" redirects all command output to the so-named text file so you can review for errors after the fact.

HTH.

Steve Blank


Re: Database Encryption

Damian Plimmer <damian@...>
 

Hi Graham,

If I understand your query correctly you could try alt+enter on the table in the data source repository you wish and set the access key to encrypt to yes.

(available in both unipaas and xpa)

The help file has more information on this and does depend on the underlying databases security mechanisms so you may want to test before and after setting this. You could probably setup access to existing files directly from Pervasive Control Center.

From PCC you shouldn't be able to read the pervasive files after adding this key in theory. 

Hopefully helps :)

Kind Regards,

Damian


Database Encryption

Graham White
 

Hi all,

 

One of our clients (a bank) has requested (demanded actually) that our database is encrypted at rest.  I have searched the help on Unipaas and XPA and can’t really find an explanation of what I need to do.  Bill Bach from Goldsatar says  “Encrypting files requires the use of owner names, which often means modifying the underlying application” however I can’t find anything on this.  We currently use transactional method with Unipaas V1.9 however we are prepared to go to XPA if it is easier/better/more secure.

 

Your comments would be most appreciated.

 

Graham White | Software Developer | Graham.White@... |
EC Credit Control |
www.eccreditcontrol.com |
invertedheader

This e-mail message and any attachments are confidential to EC Credit Control and subject to legal privilege. If you have received this e-mail in error, please advise the sender immediately and destroy the message and any attachments.  If you are not the intended recipient you are notified that any use, distribution, amendment, copying or any action taken or omitted to be taken in reliance of this message or attachments is prohibited.
 


Re: Record Prefix Behavior #ria

Ulrich Ahrendt
 

Hi Darren,

you wrote "...But when I clicked Save and Close button, it would still go to Record Prefix..". I gues, that you use an user event. Is this event set to "Post Record Update"?

Regards,
Ulrich


Re: Record Prefix Behavior #ria

Andreas Sedlmeier
 
Edited

Hi Darren,

This issue sounds like a pretty dramatic bug to me. So you have to pay for it and report it :)

There's however events which would force record prefix for a record another time, like a view refresh I think. So you should enable all logging and look into activity monitor to see the order of events, ... . That will give you much more insight than your test code with the message

Best regards,

Andreas


Re: Record Prefix Behavior #ria

Tim Downie
 

Just put a block around what you want to execute once in rp...inside it set virtual executed = true....cnd on block not(executed)
From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of Darren <darren.jimenez@...>
Sent: Tuesday, 30 October 2018 1:58:56 AM
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Record Prefix Behavior #ria
 

Hi Govert,

What I want is to update the virtual variable before user interaction that's why I placed it in the Record Prefix.

But when I clicked Save and Close button, it would still go to Record Prefix as you have seen in the screenshot I sent and update those variables again which I do not want to happen.

Regards,
Darren


Re: Record Prefix Behavior #ria

Darren
 

Hi Govert,

What I want is to update the virtual variable before user interaction that's why I placed it in the Record Prefix.

But when I clicked Save and Close button, it would still go to Record Prefix as you have seen in the screenshot I sent and update those variables again which I do not want to happen.

Regards,
Darren


Re: Calling xpa web service

Andreas Sedlmeier
 

Hi Adam,

Well that strange ARGUMENTS= thing originates from v8 20 years ago and Magic never really managed to document it. You can find it in some of the samples or documented (well, sort of documented) together with the command line requester (-> http://kb.magicsoftware.com/articles/bl_Reference/Command-Line-Requester-xpa-3x) . Its basically a strange "RPC style" concept invented for the first versions which has been forgotten to be replaced by something decent.

Basically you do already *have* a webservice implemented here and you could even specify an API complying with standards based on it - where the request body is application/x-www-form-urlencoded (https://swagger.io/docs/specification/describing-request-body/) . There just wont be much tools which support this, Swagger f.i. does.

When you do mean "SOAP XML with Systinet" when you refer to webservices. Thats totally legacy and you should just forget about that ;). Also better get rid of Magic broker and use Gigaspaces or different middleware. Thats recommendations based on personal experience with Magic Broker technology .

Best regards,

Andreas


Re: Record Prefix Behavior #ria

Govert Schipper
 

Hi Darren,


The Record Prefix level is automatically executed for each record in the Logic. If there is only one record than it will be executed once, just before user interaction takes place. But if you want to update Virtuals with values from the data record that is being updated, you should put these updates in the Record SUFFIX instead.


Govert



Van: main@magicu-l.groups.io <main@magicu-l.groups.io> namens Darren <darren.jimenez@...>
Verzonden: maandag 29 oktober 2018 04:10
Aan: main@magicu-l.groups.io
Onderwerp: Re: [magicu-l] Record Prefix Behavior #ria
 

Hi Govert,

Yes I tried all of that and it worked on a dummy program that I made, simple program with 1 main source 2 virtuals.

But when I tried it on the actual program, it is still doing the same.

Is there some kind of trigger to force it to go to record prefix first?

 

Regards,
Darren


Re: Calling xpa web service

Jackson, Adam
 

Hi Andreas,

 

The ARGUMENTS portion unlocked the door – all good now. I’ll work on coming up with a meaningful, helpful success message.

 

At this stage this is purely for intranet use so if/when we expose to the internet I will need to use web services but for now “Magic & Internet” gives me exactly what I need.

 

Thanks,

 

Adam

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of Andreas Sedlmeier
Sent: 27 October 2018 10:16
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Hi Adam,

What you have is a "Magic & Internet" program. Basically the ISAPI requester connects your client (a browser) to your Magic program running on server side. The return value is not relevant in this case. What you need to do is, writig your response to the requester and that you can achieve by using the requester functions or by an I/O entry of type "Requester". You really should look into the tutorials and examples.

Second, your parameters do not make it to the program and default to "empty". Thats because you did not put an ARGUMENTS= string on the URL. Your URL could look like following and you would get the values: http://<my_server>/magicscripts/mgrqispi.dll?APPNAME=JavelinWS2&PRGNAME=ClosePO&ARGUMENTS=-ACN%20203391,-N2

In your specific case I would probably create a static "Thank you, order has been closed" html page and program ClosePO would return a relocation to there so that the browser loads that page. I have a sample for such a program: https://github.com/asedl/XpaDemo/blob/master/XpaDemo/Components/XpaTWeb/Source/Prg_4.xml

Finally you really should be aware of the impact when you open your system to the Internet and add some security because your program can be called by everyone with whatever paramters. Somebody could send you requests to close all your orders, ...

Best regards,

Andreas


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


Windows 10 and xpa 2.5

Jackson, Adam
 

Hi,

 

Has anyone experienced any mgxparuntime.exe crashing on windows 10? Our app runs fine on windows 7 but those users on windows 10 get, seemingly random, crashes anything from 4 -10 times a day. My research into issue is still in early stages but I thought worth checking in here to see if anyone else has already worked through similar issues.

 

Xpa 2.5d / MSSQL 2008

 

TIA

 

Adam


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


Re: Record Prefix Behavior #ria

Darren
 

Hi Govert,

Yes I tried all of that and it worked on a dummy program that I made, simple program with 1 main source 2 virtuals.

But when I tried it on the actual program, it is still doing the same.

Is there some kind of trigger to force it to go to record prefix first?

 

Regards,
Darren


Re: Calling xpa web service

rhiel_x
 





Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: "Jackson, Adam" <adam.jackson@...>
Date: 10/26/18 21:27 (GMT+07:00)
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

To clarify:

 

The return value in the program properties  is : Trim(PO No)&' / '&Trim(Str(PO Line No,'###'))

Where PO_No and PO Line No are the two columns from the main source

 

A similar  expression is used for verify/warning but uses the equivalent passed in arguments and // instead of / to differentiate it further

The value for the verify warning in the mgerror file is <371855281692351680> 26/10/2018 15:13:09.745     [Error  ] -  // 0  >> Application : E:\JSNT\Javelin.2017r1\Private\Support\JavelinW    :     S\, program: ClosePO

 

The task ranges on the two passed in values so if they have no values in them then range will return nothing and we get error. I am getting no result because the range is failing.

 

Even if I change the task properties output value to:

 

'You have updated: '&Trim(PO No)&' / '&Trim(Str(PO Line No,'###'))

 

I get same error

 

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of Jackson, Adam
Sent: 26 October 2018 14:00
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Almost there

I have

 

http://<my_server>/magicscripts/mgrqispi.dll?APPNAME=JavelinWS2&PRGNAME=ClosePO&PO_No=CN%20203391+PO_Line_No=2

 

getting enterprise server error "No output returned from remote program" (-11)

 

I have added parameters to a verify in task prefix and looking at mgerror file there are no values in arguments being passed in – can anybody tell me what is wrong with the syntax of my url

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of Jackson, Adam
Sent: 26 October 2018 11:46
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Hi,

 

So I have developed my URL to be:

 

http://<myserver>/Sites/JavelinWS/Scripts/mgrqispi.dll?APPLICATION=JAVELINWS2&PRG_NAME=Close_PO

 

but get error 500

 

Calling GetProcAddress on ISAPI filter "C:\Program Files (x86)\MSE\Magic xpa 2.5\Scripts\MGrqispi.dll" failed

Then get a list of Microsoft suggestions of what could be problem and solution. But I suspect my URL is wrong.

 

Any clues? This is all new to me. Sorry for newbie questions

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of jay Bhagat via Groups.Io
Sent: 26 October 2018 10:45
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Hi Adam,

Calling the magic program via href that is the only option you have, if not using the soap request.

as you are building the URL you can easily build whatever parameters you want to pass hidden from the user in the email and call your magic program to do the update.

You are on the right track.

Regards
Jayesh


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


Re: Calling xpa web service

Andreas Sedlmeier
 

Hi Adam,

What you have is a "Magic & Internet" program. Basically the ISAPI requester connects your client (a browser) to your Magic program running on server side. The return value is not relevant in this case. What you need to do is, writig your response to the requester and that you can achieve by using the requester functions or by an I/O entry of type "Requester". You really should look into the tutorials and examples.

Second, your parameters do not make it to the program and default to "empty". Thats because you did not put an ARGUMENTS= string on the URL. Your URL could look like following and you would get the values: http://<my_server>/magicscripts/mgrqispi.dll?APPNAME=JavelinWS2&PRGNAME=ClosePO&ARGUMENTS=-ACN%20203391,-N2

In your specific case I would probably create a static "Thank you, order has been closed" html page and program ClosePO would return a relocation to there so that the browser loads that page. I have a sample for such a program: https://github.com/asedl/XpaDemo/blob/master/XpaDemo/Components/XpaTWeb/Source/Prg_4.xml

Finally you really should be aware of the impact when you open your system to the Internet and add some security because your program can be called by everyone with whatever paramters. Somebody could send you requests to close all your orders, ...

Best regards,

Andreas


Re: Strange mobile/RIA error

Joseph Knickerbocker
 

So the issue was solved just by deleting the stray program that was trying to be called. I have no idea why that program was being called, there was no reference to it anywhere in my project. I guess it was just some magic in Magic . .. 


Re: Calling xpa web service

Jackson, Adam
 

To clarify:

 

The return value in the program properties  is : Trim(PO No)&' / '&Trim(Str(PO Line No,'###'))

Where PO_No and PO Line No are the two columns from the main source

 

A similar  expression is used for verify/warning but uses the equivalent passed in arguments and // instead of / to differentiate it further

The value for the verify warning in the mgerror file is <371855281692351680> 26/10/2018 15:13:09.745     [Error  ] -  // 0  >> Application : E:\JSNT\Javelin.2017r1\Private\Support\JavelinWS\, program: ClosePO

 

The task ranges on the two passed in values so if they have no values in them then range will return nothing and we get error. I am getting no result because the range is failing.

 

Even if I change the task properties output value to:

 

'You have updated: '&Trim(PO No)&' / '&Trim(Str(PO Line No,'###'))

 

I get same error

 

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of Jackson, Adam
Sent: 26 October 2018 14:00
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Almost there

I have

 

http://<my_server>/magicscripts/mgrqispi.dll?APPNAME=JavelinWS2&PRGNAME=ClosePO&PO_No=CN%20203391+PO_Line_No=2

 

getting enterprise server error "No output returned from remote program" (-11)

 

I have added parameters to a verify in task prefix and looking at mgerror file there are no values in arguments being passed in – can anybody tell me what is wrong with the syntax of my url

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of Jackson, Adam
Sent: 26 October 2018 11:46
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Hi,

 

So I have developed my URL to be:

 

http://<myserver>/Sites/JavelinWS/Scripts/mgrqispi.dll?APPLICATION=JAVELINWS2&PRG_NAME=Close_PO

 

but get error 500

 

Calling GetProcAddress on ISAPI filter "C:\Program Files (x86)\MSE\Magic xpa 2.5\Scripts\MGrqispi.dll" failed

Then get a list of Microsoft suggestions of what could be problem and solution. But I suspect my URL is wrong.

 

Any clues? This is all new to me. Sorry for newbie questions

 

From: main@magicu-l.groups.io [mailto:main@magicu-l.groups.io] On Behalf Of jay Bhagat via Groups.Io
Sent: 26 October 2018 10:45
To: main@magicu-l.groups.io
Subject: Re: [magicu-l] Calling xpa web service

 

Hi Adam,

Calling the magic program via href that is the only option you have, if not using the soap request.

as you are building the URL you can easily build whatever parameters you want to pass hidden from the user in the email and call your magic program to do the update.

You are on the right track.

Regards
Jayesh


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478


The contents of this e-mail are confidential and for the exclusive use of the intended recipient. If you are not the intended recipient you should not read, copy, retransmit or disclose its contents. If you have received this email in error please delete it from your system immediately and notify us either by email or telephone. The views expressed in this communication may not necessarily be the views held by McLaren Racing Limited.
McLaren Racing Limited | McLaren Technology Centre | Chertsey Road | Woking | Surrey | GU21 4YH | UK | Company Number: 01517478

7201 - 7220 of 196209