cancel
Showing results for 
Search instead for 
Did you mean: 

Syclo - iOS - Attachment Upload

Former Member
0 Kudos

Hi All,

I am working with SMART Work Manager for SAP and I am creating functionality for users to take a picture and attach with the Business Object (Notification) they are creating. This part is working fine. I am able to take a picture and send it to SAP.

I have the below queries:

  • Is there a way to reduce the picture size while attaching/sending over the network? Like when you try to attach pics with Microsoft Outlook, it asks for 'Picture Size', which reduces the size of the attachment. This is send a little inferior picture and save network data costs.
  • Any way to send the transaction only if Wifi is available? This is again to send heavy data only on Wifi.

Kindly let me know if you have any suggestions.

Regards

Ankur Malhotra

Tags edited by: Michael Appleby

Accepted Solutions (0)

Answers (2)

Answers (2)

mark_pe
Active Contributor
0 Kudos

Some ideas:

Similar with your phones, you will have to specify if you are on WiFi coverage to upload large files. Like selecting your named connection to your home or work wifi network under your configuration or settings. Sometimes your phone can do this automatically. In Agentry, it only defaults to your main connectivty and if it fails it will connect to your failover connection.

To do this in Agentry, you may have to do:

1) Name two connection type in your transmitconfiguration settings.  One for WiFi and one for your regular connection.  Make your primary the WiFi (or define the server address of your Wifi connection) and another for GPRS.

If you are in an area with WiFi coverage you may select the WiFi connection for your transmit (you may have to press - transmit - stop - select connectivity WiFi - transmit.

You may need to use the SDML.

Not sure if you want to use the SDML <<user.client.xmitConfigName>> - Returns the name of the transmit configuration definition selected by the user for the current transmission. This is the internal definition name.

So if you have named a WiFi connection as WiFi and you check this <<user.client.xmitConfigName>> to equal WiFi then this means that this is your connection type. There is a java syntax for SDML.

This will be a customization for your Java upload step to check the value of that user client xmit config name to check if it is your WiFi connection. If true then send update if false don't send (but more customization on what you want to do on don't send like just skip the entire thing for the next transmit - may need to modify your client response too)  This is a custom Java mod for your update step.

This is the idea. 

Not sure if somebody did this already and if somebody has the actual Java source code for an example.

I bet there is some java code available online to reduce image size (You can Google it). So you can modify your Java code to reduce image size..

Former Member
0 Kudos

Hi Mark,

I am working based on your response.

I have one query as of now:

  • When you say - define the server address of your Wifi connection - What exactly u mean and where can I do it? Or how to make sure that the Transmit Config will work only on Wifi and will fail if the phone is on GPRS?
  • Second regarding reducing the image size.. if I do it in Java.. Will it have any effect on the File Document Management Step which I am using for placing the image on the server.. which the Java code is picking and sending to SAP.

Regards

Ankur Malhotra

mark_pe
Active Contributor
0 Kudos

For your question:

I have one query as of now: 

  • When you say - define the server address of your Wifi connection - What exactly u mean and where can I do it? Or how to make sure that the Transmit Config will work only on Wifi and will fail if the phone is on GPRS?

Answer: when I said my comments above, I was thinking you give two name connection in the Agentry Editor -> TransmitConfiguration section. One uses your IP Address for your WiFi server (you specify the actual address) and one GPRS connection you specify your provider (like SPRINT or TMOBILE) as stated in the phone/pda. By using the technique, transmit-stop-select your connection-transmit the named connection will be available during transmit (SDML).  From here you can do certains steps.  It was an idea.

You mentioned or implied "will fail" or automatic fail when the phone is in GPRS.  I was hoping that you can do the technique Transmit-Stop-Choose Connection-Transmit so your code can pick up the <<user.client.xmitConfigName>> SDML keyword (Or Named Parameter) to skip the transmit step with the file. You may use a table in the backend (Ex: Insert <<user.client.xmConfigName>> to a column in an exchange table) to detect this name and if yes, during sync notify a property (or download the value) in the mobile device to be a value (ex: TransmitDoc = X) so when you run your action (attach document to check this object property value of TransmitDoc if = X) to transmit the file (or run the attach document action) or not.

Again these are just ideas.

  • Second regarding reducing the image size.. if I do it in Java.. Will it have any effect on the File Document Management Step which I am using for placing the image on the server.. which the Java code is picking and sending to SAP.

During the Document Management Step it may be too late already if you are sending the file size that is 2MB over the air. The reduction should occur before that. I initially thought you want to reduce the file that is in the backend. I forgot that you mention you want to reduce the size on the client before transmitting.  At this point you may try ActiveX control to run on the client (as a step) before the document management step process the transmit. Read on ActiveX control of Agentry (it does not teach you ActiveX but it may teach you what you need to do in the editor to use it). there maybe some ActiveX code out there that can reduce file sizes. That's probably how our advance partners in Europe does it.  So if you want something run on the client (that is external to Agentry) do it in ActiveX step then if you want to massage your data in the backend you do it in Java. ActiveX control of Agentry is what they used to embed third party interface from a control system or navigation equipment or sensing equipment and others on trucks or boats to Agentry to transmit the data to the backend SAP.

Former Member
0 Kudos

Hi Mark,

I don't think I am clear as to where in the Transmit Configuration definition I can define an IP Address for a WiFi Server? -

     In Server Address Settings?

         

     In the ModemConnection tab?

And it doesn't seem this will handle the user moving to different Wifi.. Like his home wifi, office wifi?

Also we are working for an iOS platform. Will ActiveX work on iOS?

Regards

Ankur Malhotra

mark_pe
Active Contributor
0 Kudos

Ankur,

That is where I was thinking -> Server Address Settings is where you will set your IP address for that named connection.

But you wil need to use the Transmit - Stop - Choose your new Transmit name - Transmit technique.

Yes it is not automatic (where it can figure your Home, Work) but more manual by using again the step above (TSCT) and you specify the IP Address.

I found this (AGS-579) for ActiveX and iOS:

As of Agentry 6.0.26 information can be passed to another application from Agentry via the "Open URL" action step, using CGI arguments. Future functionality may include the ability to for the client to accept CGI arguments. Other functionality will include the ability for developers to link in their own UI controls with the rest of the Agentry client (TBD - Q3 2013+?).

Hope this helps.

Former Member
0 Kudos

No. There is currently no way to reduce the image size with Agentry on iOS.

Stephen Streeter