Quantcast
Channel: SCN : Blog List - All Communities
Viewing all 2548 articles
Browse latest View live

Combine all the HANA goodies in a showcase – the HCP trial landscape is the perfect platform for this

$
0
0

Part 1: Setup HCP account and IDE, twitter account and download first tweets


As a student in SAP HANA Product Management I had to explore what can be done on HCP trial landscape, what runs out-of-the-box, which SAP HANA features are available – and which business needs can be met, in the end? So, here are the results.


In this series of blogs I am going to explain how to build an real-time social media analytic application using the SAP HANA cloud platform (HCP). I wanted to make use of predictive algorithms. A hotspot for predictive is marketing. Therefore, I chose this topic. Of course, it is not ready-to-use, like a product. But it is “ready-to-copy-and-learn” and I named it SmartApp. While digging deeper and deeper, of course I learnt a lot through a multitude of other blogs and SAP HANA Academy videos. Thanks to all of you! (I do mention them below.)


It is an application that you can follow along yourself. However first let’s have a quick look at the overall scenario of the SmartApp. We are going to access some real-time social media information. I would like to take twitter as the example so we can get information on specific tweets that we want to look for and will pull those tweets out in real-time using the twitter API. The idea for this use was fueled by a nice blog from a Chinese colleague of mine, Wenjun Zhou:http://scn.sap.com/community/developer-center/hana/blog/2014/11/23/real-time-sentiment-rating-of-movies-on-sap-hana-part-6--wrap-up-and-looking-ahead- kudos to you for this work!


We will process those tweets and load them in real-time into the HANA database. However the database is hosted on HCP. It was my ambition to use an HCP developer trial edition for as long as possible (until I need a feature that is only available on a dedicated HANA instance). Once we loaded the data into the database then we can do some further analysis on how to group or segment the different types of tweeters, maybe we to group similar people together, for example the group of people expressing positive or negative sentiments towards the product or company, and it would also make sense to differentiate whether they are influential because a lot of people follow them and their tweets get retweeted. We could identify that group so we can target some education program or reach-out program to those people. So, the idea was to do some predictive analysis in HANA itself in order to segment, cluster or to group similar kinds of people sending tweets. And finally, I wanted to make the results available through web services i.e., OData, XSJS native web services within the HANA platform in order to build a HTML5 application that could run on desktop and mobile devices to look at the analysis results. That’s the overall scenario of the SmartApp.


I don't want this blog to stretch like a chewing gum, so I divided the whole story into 3 parts:

  

1. Setup HCP account and IDE, twitter account and download first tweets

2.Refine processing of tweets with text Analysis, building web services and setting HANA Cloud Connector – this is the “heavy lifting” on SAP HANA from my point of view!

3. Do the UX work – use Analytics tools – make it nice


 


In the following sections, of course there is a lot of overlap with many existing blogs out there. Thank you to everybody I learnt from. Here are just a few of them:


Prerequisites


Before we start to build the application, we need to register for HCP trial developer account and create Hana instance within the trial account (recommended to give instance name as “dev” and Database system as HANA XS (shared)since we can refer it in many applications).

Open SAP HANA Administration console perspective by clicking top right cornerCapture 11.PNGof eclipse.


Find API keys



SET SCHEMA


First, identify the schema name to put application specific artifacts like tables, views:

To Identify and set Application schema keep DEV_xxx schema selected and hit onSQLSnip.PNGSQL button.

schema.PNG

Make sure to set the database connection by clicking ondbconnection.PNG.


Copy the following statements to the sql console in eclipse:

 

To Identify application schema,copy:

SELECT SCHEMA_NAME FROM "HCP"."HCP_DEV_METADATA";


To Identify current user,copy:

SELECT CURRENT_USER FROM DUMMY;


To Verify predictive analysis library is available,copy:

SELECT * FROM SYS.AFL_FUNCTIONS WHERE PACKAGE_NAME='PAL';


To Set application schema - paste in value below,copy:

SET SCHEMA NEO_;

 

Select & Run the statement to identify application schema:

SELECT SCHEMA_NAME FROM "HCP"."HCP_DEV_METADATA";  execute by clicking executionsnip.PNG.  As a result, the schema name is shown.


Then right click on the schema name and copy the cells. To set application schema – Paste the value below as

 

SET SCHEMA NEO_xxxxxxxxxxx; execute it to activate the schema.


Create Tweets table executing the below code:

CREATE COLUMN TABLE "Tweets" (

           

             "id" VARCHAR(256) NOT NULL,

           

              "created" TIMESTAMP,

           

               "text" NVARCHAR(256),

           

               "lang" VARCHAR(256),

           

               "user" VARCHAR(256),

           

               "replyUser" VARCHAR(256),

          

               "retweetedUser" VARCHAR(256),

           

               "lat" DOUBLE,

       

               "lon" DOUBLE,

          

                PRIMARY KEY ("id")

);


Now we can find the tweets table in the schema (NEO_xxxxxxx) that we set initially.

tweetstable.PNG


Now install node.js to access both twitter API and HANA Database very easily that connects together.


To download the code of SmartApp from Git hub please click here.


Open downloaded SmartApp -> nodejs-> app.js in the editor may be notepad++.


In the code snippet we can see a variable called twitter where we actually specify the consumer_key, consumer_secret, access_token_key, access_token_secret. If you remember we already got this information when we registered our application in twitter. Now copy and paste the consumer_key into our file. Similarly do the same for other values also as shown below.


var twitter = new twitter({

       consumer_key: 'xxxxxxxx',


      consumer_secret: 'xxxxxxxxxxx',


      access_token_key: 'xxxxxxxxxxx',


       access_token_secret: 'xxxxxxxxxxx'


We have a second file called package.json in the nodejs with the list of dependencies like express, request, oauth, twitter, hdb that are used in our application. Now we can install all these with an npm and node installation command. Now click shift+rightmouse button on the nodejs folder in the SmartApp to open a command prompt in that nodejs folder then use “npm install” command to install all the dependencies that we needed in our application.


Then Restart the system (computer) so that nodejs could run without errors.

nodejs command.PNG

npm install.PNG

Go to nodejs folder should be able to see node_modules folder which actually consists the code for the modules setup and installed.


Setup the Tunnel


Let us setup the Database tunnel to connect directly to the HANA database using p-number trial id (pxxxxtrial). In order to setup the database tunnel open a command prompt on the tools folder in neo-java-web-sdk by shift+right click mouse button. Now execute the command “neo open-db-tunnel –h hanatrial.ondemand.com –i dev –a pxxxtrial –u pxxxx” (please enter the command manually don’t copy!) by replacing the account name with your pxxxxxtrial account and username with the pxxxx number.


After executing the command enter the password that you gave during the trial account creation. The tunnel opened and gives us the properties to connect to the schema.

Capture.PNG

Now go to the app.js file, edit the port as 30115 then copy the user, password, Schema name properties and paste in the app.js file respectively as shown below.


var hdb = hdb.createClient({

            host     : 'localhost',

            port     : 30115,

            user     : 'DEV_xxxxxxxxxxxxxxxxx',

            password : 'xxxxxxxxxxxxxx'

});

 

var hdb_schema = "NEO_xxxxxxxxxxxxxx";


Now let’s start the application by simply going into command prompt running in the nodejs folder. Goto the downloaded smartApp -> nodejs folder then shift+right click then select open command window.Type “node app.js” as command, application will run and we can see two messages as shown below.

nodeapp.PNG

Goto the Chrome browser enter “localhost:8888/do/start?track = productname or companyname”. 


Note: Enter the product or company name that you would like to track or make analysis. 

 

Now we can see in nodejs command prompt that tweets are loading into HANA database. Go to the tweets table in eclipse and refresh by clicking on top right corner. We can see some tweets that are loaded in to table.

tweetloaded.PNG

If you want to stop loading the tweets go back to chrome browser then type “localhost:8888/do/stop”.


Note: While working with tunnel it must remain open for nodejs in order to be connect to the Hana instance. Since it’s a trial account this tunnel only lasts for 24 hours at that time you need to reopen it. However it’s fine for development and testing purposes. When using Productive HCP able to let things run 24/7.


Thanks for reading. Hope you enjoyed the blog….


Next Steps

In the next blog will perform some text analysis on Tweets data, Setup SAP HANA Cloud Connector and Configurations, Building web services using HANA Native development and setup authorizations. I will insert the link in here as soon as it is available!


Troubleshooting Deployment to an ABAP System from SAP Web IDE

$
0
0

Introduction

 

SAP Web IDE offers the ability to deploy applications into your ABAP system as a new app or as an update to an existing one.

All you have to do it to right-click your app and choose Deploy -> Deploy to SAPUI5 ABAP Repository, fill in the necessary information such as name, description and package, and click Finish.

 

Technical Details

 

  • When the system is selected in the first step of the wizard, we execute a call to get the discovery XML of the /sap/bc/adt service (issuing GET for /sap/bc/adt/discovery). Then we analyze the result XML to verify all is valid to proceed. If something is missing or there was a problem issuing the request we show an error (more details below).
  • A new application is deployed on the server by issuing POST/PUT requests for its resources.
  • Upon update of an existing application, we deploy the entire app and not only the changed resources, because there is no tracking on changes being done to the app outside of SAP Web IDE and by other users. This is similar to the functionality of the /UI5/UI5_REPOSITORY_LOAD function (with slight difference).

 

Troubleshooting

 

Here are some problems and solutions that I've gathered from my experience here on SCN:


  • Problem: My ABAP system is showing in SAP Web IDE but not in this wizard.

        Solution: Make sure you have the dev_abap WebIDEUsage configured in your destination in HCP cockpit.


  • Problem: I get an error when my system is selected in the first step of the wizard.

        Solution: This can happen for several reasons:

    • An "authorization" error is displayed because the /sap/bc/adt/ service isn't activated in transaction SICF. Example: Re: Authorization error when connecting to Gateway from WebIDE
    • A "forbidden" error is displayed due to missing authorizations to access /sap/bc/adt/discovery. The best way to check this is by trying to access the discovery in the browser directly from the system's host and port and not via SAP Web IDE using the same credentials, and see if the user gets a valid response. Examples: Re: WebIDE deploy error ,Not able to access Gateway system from WEB IDE
    • A "forbidden" error is displayed with no prompt for user credentials because the ICF node for ADT is configured with fixed user credentials. The solution would be to remove the fixed user credentials. This can also occur during the deployment process and result in an "CSRF token validation failed" error. Example: CSRF token validation failed while deploying extended fiori application to ABAP Repository
    • A "forbidden" error is displayed because SAP Note 1977537 is not implemented (Introduction of XHR client authentication). If you have not implemented this note or if it needs an update, make sure you implement the latest version of the note.
    • The following error is displayed: "Cannot select the system. Check the configuration for ABAP Development Tools". This can be due to missing prerequisites, or missing authorizations, see example: Error Connecting to ABAP Repository from webIDE.

  • Problem: I can only deploy to $TMP package.
    Solution: Either a note implementation is missing, or some note's status needs a reset due to the SAP_BASIS version. Please follow the prerequisites mentioned in our documentation.

  • Problem: I'm getting an error after selecting a package and in the browser's network trace I see "CSRF token validation failed" error when trying to
    reach /sap/bc/adt/cts/transportchecks service.
    Solution: In short, this issue may happen because the backend system expects a request with HTTPS and receives a request with HTTP or vice versa.
    Then it performs a redirect which makes the CSRF token invalid. Make sure to configure the destination in HCP cockpit and Cloud Connector in the
    same way the backend expects to get it (or change the security configuration of your backend system).

 

  • Problem: I'm getting this error upon deployment: "Cannot deploy application XXX: Remote creation in customer namespace not possible".
    Solution: The target system is running in SAP mode.You can either use the SAP namespace in the given application name, or change the system to work in customer mode if possible. Alternatively an empty app can be created with report /UI5/UI5_REPOSITORY_LOAD via SAPGUI and then you can deploy into it.

  • Problem: First folders are deployed successfully but the first file gets an HTTP 500 error.
    Solution: Probably a problem with the Web Dispatcher. Open a ticket for the Web Dispatcher component.

  • Problem: I'm getting this error upon deployment: "No development license for user XXX".
    Solution: This is the standard behavior of an ABAP system. To deploy, the user has to be registered as a developer in the system.

  • Problem: I'm getting this error upon deployment: "Object X is already locked in request Y of user Z".
    Solution: Make sure to select the right transport in the wizard. If selecting a transport isn't possible check the prerequisites and make sure all relevant notes are implemented, and that you have all relevant authorizations for the /sap/bc/adt/cts/transportchecks service.

  • Problem: I'm getting this error upon deployment: "Cannot deploy the application. Virus scan server error. No virus scan profile is selected as the default".
    Solution: You need to select a virus scan profile in your backend system or switch it off. Example: Re: Cannot deploy application in ABAP Repository - Virus scan server error


  • Problem: I'm getting this error upon deployment: "Cannot deploy the application: Request XXX is not a local request". The transport request is created as part of the wizard.
    Solution: Both the package and the new transport request have a transport layer assigned to them. In this case, the package has a local transport layer assigned to it, but the transport request created is not a local request. See SAP Note 2121673 that deals with inconsistencies in the transport handling, and how such inconsistencies might result in this error. Check whether you have the latest release of this note and that the package is defined as described in the note.

  • Problem:Empty files aren't being deployed.
    Solution: Implement SAP Note 2211746.

 


More Tips

 

  • Whenever you experience an issue with the deployment and ask for help, it's very helpful to attach the network trace available in the browser's Developer Tools, specifically the failed request and its response. Also attach how your destination is configured.

  • You can see the progress of the deployment in the SAPWeb IDE Console (available from the View menu).

Console.PNG

How to read content repository attachments and convert mail sent from cl_bcs=>short_message to HTML message along with attachments?

$
0
0

Original requirement:

Requirement is to retrieve the all the files attached in Content repository though GOS for a particular document and pull formatted text from SO10 and attach those attachments retrieved from Archiving and send it as a HTML mail , but before sending mail the client can modify the content , add the receivers whoever needs the mail and also they can able to edit the attachments (ie., delete or add whichever they need) .


Background to the issue:

Recently we had a requirement , where the client wants to edit the content of the mail being sent and modify the attachments as they need on the go and send that mail in HTML mail format.

The following are the difficulties.

1. How to retrieve the contents from Archieve server(ie., Sharepoint /SAP content repository)?

2. How to enable the user to edit the attachments and edit the body of the mail on the go?

3. The last challenge is emerged from the solution given from the step 2 (No other go we found in the short time , may be you viewers should able to provide it).


Despite of these challenges we faced some other issues , that i'll be explain as and when we move through the blog.


Detailed steps:

1. How to get the content repository archieve id:

 

 

  1.   SELECT SINGLE archiv_id 
  2.          FROM toaom 
  3.          INTO lv_arc_id 
  4.          WHERE sap_object = lc_objtype AND 
  5.                ar_object = lc_object. 

2.How to retrieve the list of documents attached under a particular document

There are many blogs which says how to retrieve the normal attachments from GOS. But there are only one or two blog which i found for retriving the archieved document(Stored in Sharepoint (Via Gimmal setup) / SAP content repository.

 

 

  1.         CALL FUNCTION'ARCHIV_GET_CONNECTIONS' 
  2.           EXPORTING 
  3.             objecttype    = lc_objtype 
  4.             object_id     = lv_obect_id 
  5.             client        = sy-mandt 
  6.             archiv_id     = lv_arc_id 
  7.             until_ar_date = sy-datum 
  8.           IMPORTING 
  9.             count         = lv_count 
  10.           TABLES 
  11.             connections   = lit_connections 
  12.           EXCEPTIONS 
  13.             nothing_found = 1 
  14.             OTHERS        = 2. 


The above code helps in retrieving the all the document details attached to GOS ( attachments through store business document)3. How to Read the description of the Archived attachment:Normally for Archive objects , we wont be able to track the actual name  of the object and to enable this specific note 1451769 has to be implemented.It has to be queried from the table TOAAT table by passing the ARC_DOC_ID obtained from LIT_CONNECTION Table.
4.To read the individual attachment and move to Dynamic screen where the user can able to edit the attachements and edit the body of the mail:

 

 

  1.   LOOP AT lit_connections ASSIGNING <lfs_connections>. 
  2.             IF <lfs_connections> IS ASSIGNED. 
  3.               lv_doctype = <lfs_connections>-reserve. 
  4. * Get the Content of each entry from GOS Archive attachment) 
  5.               CALL FUNCTION'ARCHIVOBJECT_GET_BYTES' 
  6.                 EXPORTING 
  7.                   archiv_id                = <lfs_connections>-archiv_id 
  8.                   archiv_doc_id            = <lfs_connections>-arc_doc_id 
  9.                   document_type            = lv_doctype 
  10.                   length                   = lv_length 
  11.                   offset                   = lv_offset 
  12.                 IMPORTING 
  13.                   binlength                = lv_length 
  14.                 TABLES 
  15.                   binarchivobject          = lit_data 
  16.                 EXCEPTIONS 
  17.                   error_archiv             = 1 
  18.                   error_communicationtable = 2 
  19.                   error_kernel             = 3 
  20.                   OTHERS                   = 4. 
  21.               IF sy-subrc EQ space
  22.                 TRY . 
  23.                     CALL METHOD cl_rmps_general_functions=>convert_1024_to_255 
  24.                       EXPORTING 
  25.                         im_tab_1024 = lit_data[] 
  26.                       RECEIVING 
  27.                         re_tab_255  = lit_bdata[]. 
  28.                   CATCH cx_bcs INTO lref_bcs. 
  29.                     MESSAGE i022(zw2c) WITH lref_bcs->error_type. 
  30.                 ENDTRY. 
  31.                 CLEAR: lv_len,lv_len1. 
  32. ***change done by Janagar (For file name Note:        1451769) 
  33.                 READTABLE lit_att_desc INTO lwa_att_desc WITHKEY arc_doc_id = <lfs_connections>-arc_doc_id 
  34.                  BINARY SEARCH. 
  35.                 IF sy-subrc = 0. 
  36.                   lv_att = lwa_att_desc-filename. 
  37.                 ENDIF. 
  38. ***endof change done by Janagar (for file name Note: 1451769) 
  39.                 DESCRIBE TABLE lit_bdata  LINES lv_len . 
  40.                 lv_len = lv_len * 2 * 255. 
  41.                 lv_len1 = lv_len. 
  42.                 lref_document = cl_document_bcs=>create_document( 
  43.                                 i_type    = lc_a_type "lc_i_type " changed by janagar 
  44. ****added by janagar 
  45.                                 i_length = lv_len1 
  46.                                 i_hex = lit_bdata[] 
  47. ****endof addition by janagar 
  48.                                 i_subject = lv_att ). 
  49.                 APPEND lref_document TO lit_attachments. 
  50.               ENDIF. 
  51.             ENDIF. 
  52.           ENDLOOP. 
  53.           UNASSIGN <lfs_connections>. 
  54.           CALL METHOD lref_send_request->set_document( lref_document ). 
  55.         ENDIF. 
  56.         IF i_link = abap_true. 
  57.           lwa_object = i_object. 
  58.         ENDIF. 
  59. *     Sender infor 
  60.         lref_sender = cl_cam_address_bcs=>create_internet_address( 
  61.                   i_sender ). 
  62.         lref_send_request->set_sender( lref_sender ). 
  63.         IF i_t_emails[] ISNOT INITIAL. 
  64.           LOOP AT i_t_emails ASSIGNING <lfs_emails>. 
  65.             IF <lfs_emails> IS ASSIGNED. 
  66.               lv_mail = <lfs_emails>-smtp_addr. 
  67.               lref_rec = cl_cam_address_bcs=>create_internet_address( lv_mail ). 
  68.               lwa_recipients-recipient = lref_rec. 
  69.               APPEND  lwa_recipients TO lit_recipients. 
  70.             ENDIF. 
  71.           ENDLOOP. 
  72.           UNASSIGN <lfs_emails>. 
  73.         ENDIF. 
  74.         lref_send_request = cl_bcs=>short_message( 
  75.             i_subject       = i_subject 
  76.             i_text          = i_t_note 
  77.             i_recipients    = lit_recipients 
  78.             i_sender        = lref_sender 
  79.             i_attachments   = lit_attachments 
  80. *          i_appl_object   = lwa_object 
  81.             i_starting_at_x = 2 
  82.             i_starting_at_y = 1 ). 
  83.         COMMITWORKAND WAIT. 
  84.         e_send_request = lref_send_request->oid( ). 
  85.       CATCH cx_bcs INTO lref_bcs. 
  86.         MESSAGE i022(zw2c) WITH lref_bcs->error_type. 


I_T_NOTE is been populated by retriveing the text dynamically from the Standard text and replace the variables in the standard text by usingTEXT_SYMBOL_REPLACE function module.

Now we have done everything we want and now the main challenge here is how to read the modified content and attachment done by the user.
I have debugged and managed to get the enhancement place , where i can get the attachments dynamically.When we call the short message there will a FM called SO_DYNP_OBJECT_SEND , this will enable the popup to populate the values and edit the attachments dynamically and also convert the Text contents to HTML contents. The original popup out of this code will be like below
short_msg_screenshot.PNGshort_msg_atta_screenshot.PNGNow the attachments here are visible as BIN because if i keep it as JPG , when the user double clicks on the attachments it gives the error and now in binary mode if the user prompts save it to JPG as in our case it is only JPG attached to the GOS content repository.
Now the following archive document has to be sent as mail.GOS screen shot.PNGFor converting the above contents to html the following enhancement has to be created. create an implicit enhancement at the end of SO_DYNP_OBJECT_SEND function module and following steps has to be followed.
a) Convert the text format internally , OBJCONT has the body of the text container.

 

 

  1. * Convert RTF to RAW 
  2.       CALL FUNCTION'SO_RTF_TO_RAW' 
  3.       EXPORTING 
  4.         line_size   = 80 
  5.       TABLES 
  6.         objcont_old = objcont 
  7.         objcont_new = objcont. 

b) add html tags to the existing content.

 

 

  1. *Adding line break. 
  2.       LOOP AT objcont ASSIGNING <lfs_objcont>. 
  3.         CONCATENATE <lfs_objcont>-LINE '<br/>'INTO<lfs_objcont>-LINE SEPARATED BYspace
  4.       ENDLOOP. 
  5. Add Font and html tag at the start of the code 
  6.       objcont-LINE = '<html><body> <basefont face="Arial" size="2">'
  7.       INSERT objcont INTO objcont INDEX 1. 
  8. *Add the image or company logo at the endofendof the mail , just add the following Tag 
  9. * Add Image 
  10.       cl_mime_repository_api=>get_api( )->get( 
  11.       EXPORTING i_url = `/SAP/PUBLIC/xxx.jpg` 
  12.       IMPORTING e_content = lv_current ). 
  13. **** 
  14. Addend tag to HTML. 
  15.       objcont-LINE = '</body></html>'
  16.       APPEND objcont. 

 

 

  1. *Convert XString data to Itab 
  2.       WHILE lv_current ISNOT INITIAL. 
  3.         lwa_hex-LINE = lv_current. 
  4.         APPEND lwa_hex TO lit_hex1. 
  5.         SHIFT lv_current LEFTBY 255 PLACES IN BYTE MODE. 
  6.       ENDWHILE. 
  7.       DESCRIBE TABLE lit_hex1 LINES lv_img1_size. 
  8.       lv_img1_size = lv_img1_size * 255. 
  9. *  Attach HTML Data to Mail 
  10.       lr_email_body = cl_document_bcs=>create_document( 
  11.       i_type = 'HTM' 
  12.       i_text = lit_data 
  13.       i_subject = lv_subject ). 
  14.       lv_object_id-objtp = objects-objtp. 
  15.       lv_object_id-objyr = objects-objyr. 
  16.       lv_object_id-objno = objects-objno. 
  17.       . 
  18.       lv_attachment = cl_document_bcs=>getu_instance_by_key( i_sood_key = lv_object_id ). 
  19. ***while doing the above step , there would be a text file which has contents from the text container also passed as an attachment along with the image andto segregate this we have to use the below logic. 
  20.       CALL METHOD lv_attachment->if_document_bcs~get_body_part_count 
  21.       RECEIVING 
  22.       re_count = lv_count 
  23.       . 
  24.       lv_count = lv_count - 1. 
  25.       DO lv_count TIMES. 
  26.         lv_count1 = sy-INDEX + 1. 
  27.         CALL METHOD lv_attachment->if_document_bcs~get_body_part_attributes 
  28.         EXPORTING 
  29.           im_part       = lv_count1 
  30.           receiving 
  31.           re_attributes = lv_attrib. 
  32.         . 
  33.         lv_atta_size = lv_attrib-filename. 
  34.         CALL METHOD lv_attachment->if_document_bcs~get_body_part_content 
  35.         EXPORTING 
  36.           im_part        = lv_count1 
  37.           receiving 
  38.           re_content     = ls_comment. 
  39.         DESCRIBE TABLE ls_comment-cont_hex LINES lv_lines. 
  40.         lit_att_size = lv_lines * sy-tleng . 
  41.         lr_email_body->add_attachment( 
  42.         EXPORTING 
  43.           i_attachment_type    = 'jpg' 
  44.           i_attachment_subject = lv_atta_size 
  45.           i_attachment_size    = lit_att_size 
  46.           i_att_content_hex    = ls_comment-cont_hex ). 
  47.       ENDDO. 
  48. *Attach Image to Mail 
  49.       lr_email_body->add_attachment( 
  50.       EXPORTING 
  51.         i_attachment_type     =  'jpg'                  " DOCUMENT CLASS FOR ATTACHMENT 
  52.         i_attachment_subject  =  'img1'                " ATTACHMENT TITLE 
  53.         i_attachment_size     =  lv_img1_size           " SIZEOF DOCUMENT CONTENT 
  54.         i_att_content_hex     =  lit_hex1 ). 
  55.       . 
  56.       lv_email = cl_bcs=>create_persistent( ). 
  57.       lv_email->set_document( lr_email_body ). 
  58. Add Receivers 
  59.       LOOP AT rec_tab. 
  60.         IF rec_tab-adr_name ISNOT INITIAL. 
  61.           lv_mail_address = rec_tab-adr_name. 
  62.           lv_receiver = cl_cam_address_bcs=>create_internet_address( lv_mail_address ). 
  63.           lv_email->add_recipient( i_recipient = lv_receiver ). 
  64.         ENDIF. 
  65.         CLEAR: rec_tab. 
  66.       ENDLOOP. 
  67. Add Sender 
  68.       lref_sender = cl_cam_address_bcs=>create_internet_address( 'donotreply@XXXX.co.uk' ). 
  69.       lv_email->set_sender( i_sender = lref_sender ). 
  70.       lv_email->set_send_immediately( 'X' ).  "SEND EMAIL DIRECTLY 
  71. *Send 
  72.       lv_email->send( i_with_error_screen = 'X' ). 
  73.       IF sy-subrc = 0. 
  74. * CommitWork 
  75. This part istocommit HTML mail and interupt the actual text mail 
  76.         COMMITWORK
  77.         MESSAGE S001(00) WITH'Message Sent Successfully'
  78.         LEAVE TO SCREEN 0. 
  79.       ENDIF. 
  80.     ENDIF. 

The mail looks like this.

Actual mail screen shot.PNG

Thanks for going through the blog and provide your feedback or suggestions below as this is my first blog.

Access to Reliable Information is Key for Security Professionals

$
0
0

It is no secret anymore that IT security is one of the key concerns and major challenges in today’s highly networked, connected and digitized world. Information fuels the digitized economy resulting in increasing amounts of information being collected, stored and processed. In consequence, the value of this information has grown vastly. As a result, many parts of our lives and our businesses are progressively dependent not only on the reliability of the information stored but moreover on the security of the IT systems running our world today.

The value of this information has not gone unnoticed – IT systems are a tempting target for many hackers. Those systems are therefore increasingly coming under attack, with new and sophisticated threats appearing on a regular basis.

SAP systems, including SAP HANA, are at the core of many SAP customers’ digitization strategies, both running their critical business applications and processes, and also containing their most valuable assets.

Keeping these systems secure is therefore of critical importance. As the global leader in business software, the security of our customer systems and data is paramount to SAP.

Unfortunately the security of a system cannot be achieved by pressing a “magic security button”. It would be more accurate to picture a jigsaw of different pieces, each with its specific security role, which need to fit together perfectly to create an all-round secure system. The pieces of this jigsaw are made up of a combination of people, processes, operations, products and infrastructure (e.g. networks, identity management, monitoring).

Equally there is no “one-size-fits-all” when it comes to security. Depending on various factors such as the business scenario, IT environment, deployment choices, existing infrastructure, industry or regulatory requirements, the security jigsaw can look very different. To complicate matters, there is also the challenge of coping with a constantly evolving and changing environment, additional regulatory requirements, the emergence of new threats and the discovery of new vulnerabilities. Patching, regularly reviewing then adapting the security environment of business systems is therefore growing in significance.

SAP HANA is designed to be a flexible platform that is at the heart of a variety of different scenarios, deployment options, environments, supporting different types of applications and business processes. SAP stands for secure and reliable software solutions, and SAP HANA security is designed to be flexible and adaptable to address the various security requirements in those different scenarios. This flexibility of SAP HANA allows it to fit into the customer’s specific security jigsaw.

The comprehensive security approach of SAP HANA covers different aspects of security including authentication, authorization, logging, and encryption, as well as tools for secure system set-up, configuration and administration. Additionally there is support for standards-based interfaces that allow for the integration into existing infrastructures.

Last but not least, SAP HANA has been developed according to SAP’s secure software development life-cycle (secure SDL), which is founded on a comprehensive product security strategy (“Prevent – Detect – React”). This strategy is applied across all of SAP’s software development and is based on training, tools and processes, which enable the delivery of secure products and services as well as an efficient security response process.

It is essential that everyone responsible for the security of a SAP HANA system has a thorough understanding of the security aspects of SAP HANA, i.e. how to best fit SAP HANA into the security infrastructure and how to keep systems up-to-date. Easy, fast and direct access to reliable information on all aspects of SAP HANA security is therefore vital to facilitate this understanding.

Hence the creation of a new space dedicated to SAP HANA security at http://hana.sap.com/security. This site will serve as the starting point and go-to place for anyone who needs information about all the different aspects of SAP HANA security. The topics covered there include information on the features and functions provided by SAP HANA in order to implement different access and security policies, alongside information on how to securely configure, manage and operate SAP HANA systems. Additionally, there is general information on how SAP develops secure products and where to find current information about security patches, updates and services provided by SAP to assist customers with running their systems securely.

Want to get started with SAP HANA security right now? Check out http://hana.sap.com/security.There you can find the our SAP HANA Whitepaper on lots more details.

Workshop: Enterprise Mobility for Utilities

$
0
0

International SAP Conference for Utilities will host a workshop on strategic mobile technologies. In this workshop, you will learn how enterprise mobility can provide value for your organization and transform business processes.

 

You will be able to explore mobile scenarios for your employees as well as your customers and your partners, hear about important steps when developing a mobile strategy and see the current mobile solutions in detail, including work management, field service, employee productivity, and customer self-service; understand mobile platforms, tools, and security. Places are limited for this workshop, therefore if you are interested in attending, please visit the conference web site and register >

Risk Management notes CW8/2016

$
0
0

Hi Guys,

 

New corrections for risk management area:

 

An update termination occurs in preference calculation (DBSQL_DUPLICATE_KEY_ERROR,  /SAPSLL/SAPLPRFPM_DB_UPDATE) if the harmonisation of the low level codes (LLCs) was performed in GTS, despite installing note 2234022 - please also install 2260325 to resolve this issue.


The aggregation of LTVDs (/SAPSLL/PRE_VDI_301) can under certain circumstances abort - please install note 2281070 to resolve.

 

Rgds

GTS Support

XSOdata with Navigation Property

$
0
0

A sample example for XSOdata  with Navigation Property


Scenario of Purchase Order(PO) Header andItem: In a single service we can navigate to Item level from Header to Item with Association .

Lets start with very basic example of VBAK (PO Header), VBAP(PO Item).


Example Code in a .XSOdata file

 

service namespace "workshop.aisurya.XSOdata" {
"<YourSchema>"."VBAK" as "POHeader" with ("MANDT","VBELN","ERDAT") navigates ("ToPoItemAssctn" as "ItemRef");
"<YourSchema>"."VBAP" as "POItems" with ("MANDT","VBELN","POSNR","MATNR","ARKTX"); 
association "ToPoItemAssctn" principal "POHeader"("VBELN") 
multiplicity "1" dependent "POItems"("VBELN") multiplicity "*";
}

Below Image for reference

1.png

 

 

Activate the changes and Run As XS Service.

 

Lets check the Metadata of service.

 

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/$metadata

 

2.png

 

As highlighted in the image(ItemRef) is a navigation property from Header to Item level.

 

Lets test the service only for 2 records by providing query option as (top=2).

 

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/POHeader?$top=2&$format=json



3.png

 

Here ItemRef is the navigation property of corresponding PO Items with URI. We can explicitly open in new tab and get the result also .

 

Now lets check Expand option for Showing Header and Corresponding Items.

 

$Expand Feature to fetch Corresponding Item along with Header.

 

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/POHeader?$top=2&$format=json&$expand=ItemRef

 

POHeader (MANDT='800', VBELN='0000004970')


4.png



Now this service can be consumed in different UI ‘s  depending upon the requirement.


Routing Source Code

$
0
0

Hi Friends,

To switch between different pages we use

a)Navigation

b)Routing

How ever Navigation is Simple, but coming to Routing it is bit tricky if you are a newbie to UI5, because it consists of Component.js File and some declarations need to be done in index.html.

As i felt it is useful to newbie's who are just started learning UI5.

I practiced this Demo example from the below blog.

Demonstration code for Navigation and Routing in SAPUI5

While developing this application i faced many issues.

Daniel Hohmann actively replied to discussion created and helped me a lot to get it to good shape.

Please feel free to comment for the working file attached and suggest if i miss any programming standards

 

Regards,

Shekar.


Appeon now selling PB 12.6

$
0
0

** Hot News **

 

 

   Over the past year I have read many SCN postings about PB developers being either confused or having trouble buying a new copy of PowerBuilder? I just found out this week that  Appeon Corporation is now distributing the SAP version of PowerBuilder 12.6!  If your maintenance subscription has expired and you would like to upgrade to a supported version of PowerBuilder - you can now contact Appeon to get a quotation.  Get a quote

Regards ... Chris

 

SAP Cloud for Customer Integration with SAP Business One (Part 2: Scenarios and Configuration)

$
0
0

10 DAYS TO GO

Dear Community,


As mentioned in the previous blog we would now like to give further insights in the integration scenarios between SAP Cloud for Sales (C4C) and SAP Business Ones (B1). Please again consider all information in this blog as subject to change and see the SAP disclaimer underneath.


Blog-Pic01-Disclaimer.jpg


But first of all, let’s have a closer look at the integration scenarios which we plan to deliver between SAP Cloud for Customer (especially the sales part) and SAP Business One (B1).


Blog-Pic05-C4C-B1-Integration-SubjectToChange.jpg


The first process is about the synchronization of product master between B1 and C4C. In B1 terminology products are called ‘items’. The scenario is unidirectional, which means B1 is still the leading system for items. Once an item is getting created or updated in B1, C4C receives a corresponding product master record (creation/update). Please see the scenario in the video.



Between both systems we also offer a bidirectional synchronization of business partners and contacts. Please see how a business partner and contact are created in B1 and how the replication to C4C works (same is possible from C4C to B1).



The transactional scenario is about the creation of a quote in C4C with real-time pricing details from SAP B1. Once a quote in C4C is approved (can be configured) by a sales manager and accepted by the customer (perhaps with signature on the mobile device), the quote can be transferred to B1 as a sales order. The quote in C4C gets this information populated by B1 as shown in a graphical document flow in the video.



Now let’s also look behind the scenes to understand how you can set-up and configure these integration scenarios. First of all please download the B1i integration package (zip file) from the SAP Business One Note (https://service.sap.com/sap/support/notes/2221527) and then upload it into your B1i integration framework. See video for more details (planned to be available on March 7th 2016).



In addition please also download the SAP Best-Practices for SAP Cloud for Customer Integration package from the SAP Service Marketplace: http://service.sap.com/rds-cfc-int. In the best-practice package you’ll find a comprehensive guide which describes step-by-step how to configure the integration between C4C and B1.

 

Now, let’s again turn towards SAP Cloud for Customer. In your tenant please navigate to the Business Configuration workcenter and activate the SAP ERP Integration in the scoping (step 3). Be aware that we reuse standard SAP ERP services in C4C for the B1 integration. In the question section (step 4), please activate the business partner and product replication as well as the quote-to-order process and integration of external pricing in quotes. As a result, C4C will deploy the corresponding communication scenarios. Please find more details in the video.



Next in B1i please ensure that your SLD system properties are correct and the connection between B1 and C4C is working properly.



Now, it’s time to configure the integration scenarios in B1i. Therefore please follow the instructions in the video. Make sure that the semantic mapping (code list mapping) fits to your individual B1 system settings.



Finally, please configure the communication scenarios in your C4C tenant. Therefore please navigate to the administrator workcenter and define a communication system for B1 and the corresponding communication arrangements for all your communication scenarios. Please find further details in the video and – of course – in the How-To Guide of the RDS package (planned to be available on March 7th).



We hope this helps you to facilitate the integration setup. Please find more information in the C4C Academy (login required, in case  of no access please contact Pushkar Ranjan) or in the C4C course on openSAP. Download the best practice package from SAP's Service Marketplace (planned to be available on March 7th). 


- Thank you very much.

PowerBuilder Conference 2016

$
0
0

** Hot News **

 

 

     Appeon Corporation is planning to put together an official PowerBuilder user conference, which will be branded as "Elevate".  The Elevate 2016 conference will be held in the United States. Appeon Corporation will also be collaborating with local user groups outside the United States to offer a conference recap in a seminar format. Appeon Corporation hopes PB Developers will be able to attend Elevate 2016 in the United States – the birthplace of PowerBuilder!  More information will be revealed on the Appeon Website in the near future ... stay tuned!

 

Regards ... Chris

Is MacOSX 10.11.x supported by SQLA 17 as platform?

$
0
0

Is MacOSX 10.11.x supported by SQLA 17 as platform?

SAP MaxDB Interfaces - SQLDBC,ODBC,JDBC and Precompiler

$
0
0

Hi Folks,

 

there is a new section in SCN which gives information about the SAP MaxDB Interfaces which are used in SAP-Systems..

 

You'll get information about the Precompiler, SQLDBC,ODBC and JDBC.
Links to the Interface Manuals and information about trace options of the several interfaces are located there as well.

 

 

http://wiki.scn.sap.com/wiki/x/hoVYGg

 

Regards, Christiane

Stacks of Paper and a Box of Wrenches Don't cut it in today's IoT world !

$
0
0

First published by Rory Shaffer here:  Stacks of Paper and a Box of Wrenches Don't cut it in today's IoT world !

 

 

Stacks of Paper and a Box of Wrenches

Don't cut it in today's IoT world !


So you want better results from the Field,

Send Out Enhanced Work Packages !



Back in the day we thought that tabbing off the stack of paper with Post It notes was high tech, or using a copy machine to zoom into the section of a E size drawing served as Imagery.


How wrong we were -


In the past the industry expected "Skill of the Craft" to deliver quality results and documentation when sent to into the field.  Over time many factors contributed to a decline in results - some that come "top of mind" include Aging Workforce, Shorter Time in Position, Higher Turnover, Increasing Complexity.  The list could go on and on, still it remains that we as an industry need to have maintenance activities performed in accordance with the instructions provided.


 

Therein lies the flaw in the earliest efforts to provide complete instructions to the field technician.  In the first generation planners would send the work order with the vendor manual, which was written by and for engineers.  This really wasn't a good fit at all !  Second crack at this saw planners using procedures that where written by peers on site , a better fit but these also suffered from formatting and overhead imposed by administrative processes.

So what was the industry to do, increasing pressure driven by the advent of Human Performance Enhancement Systems and Corrective Action Programs as well the various agencies tasked to help exerting more and more pressure for improvement?

Now we layer on the Digital Natives expectation of the Internet of Things (IoT) and we have the Perfect Storm or Opportunity ?

The result was a movement towards Enhanced Work Packages - a concept that blends the ideas from first and second generation packages with the human factors and efficiency improvements available and known as effective.  The advent of the mobility platforms such as SAP Mobile Platform allow for much more functionality and bi directional communication to be used.

The Open UI Framework that is available in the SAP Mobile Platform and built into the Work Manager Mobile application allows the use of ubiquitous plug ins to be inserted into the mobile users application and experience in the field.

Let's take a look a content and how it is used from inception.

Start with the content, it comes in many cases from the vendor in a usable format for engineers , but how about the field personnel ?   Where can they find these docs ?  The Technical Document Room is hardly a friendly place for the box of wrenches when the plant is coming down around you !

So how about a tailored version of the documentation formatted in a way that it can be consumed in many stages of the process ?  Let's think of having a group of experienced planners or technicians select the highest value jobs, scrub the documentation and produce some quality instructions that have broad use to the organization.

Start with training - Computer Based Training solutions have been around for some time, mostly question banks and schedules - how about 3 D animated video that can be used to train with realism ?  SAP offers 2 and 3D imagery solutions that can be embedded into work orders and played in advance or on site during the maintenance work.  Check out the Video Example - <CLICK>

 

VisualEnterpriseCapture.JPG

Now that the understanding and learning that occurs during the training has been verified, the next steps would be to have the Planner pull up the SAP attached documents and build an Enhanced Work Package for the mobile user.  This allows the same content that was created by the vendor to be again used in the execution of field work.  It also is familiar as the technicianencountered it and was tested against it during the CBT training.

All this is attached and coupled with the job steps, parts list, schedule, safety instructions the work order is ready for use.  This is what an Enhanced Package is about and now it's ready for the mobile user.

Although this would be a great improvement over the Old Day Post It Note Approach

it doesn't stop there.

I mentioned the Open UI framework and how this technology could be used to extent the mobile experience of the SAP Work Manager application.  Customers are taking advantage of plug ins that use Adobe Technology for field markups, place keeping and data capture.  This takes more and more of the error traps out of the process and makes for a more streamlined back end process.

In the end the opportunities are wide open and limited only by your imagination.

Don't be the box of Wrenches - Step into the Internet of Things World and Visualize what's Possible !

Digitization in the Industrial Machinery & Components Industry – The Maturity Ladder

$
0
0

I recently listened to nice presentation from IDC about digitization in the manufacturing industries. One topic, which I found quite interesting, was the digital maturity ladder for manufacturing companies.

 

The digital maturity ladder was described in 5 Levels:

  1. Ad-Hoc -> Digital Resistor
  2. Opportunistic -> Digital Explorer
  3. Repeatable -> Digital Player
  4. Managed –> Digital Transformer
  5. Optimized -> Digital Disrupter

 

In the context of the digital transformation, companies will change their business models and ecosystems by utilizing digital capabilities, and leveraging new technologies to enable horizontal and vertical business process integration to provide a new or even a better value proposition for their customers in the Industrial Machinery & Component industry.

 

The value proposition during the digital transformation could be adapted in the following areas for Industrial Machinery & Component companies:

 

1) Aftermarket Service

  • Increase overall equipment efficiency and reducing unexpected down times by constantly monitoring the equipment, identifying value patterns, and predicting potential issues.
  • Predict service part usage to reduce high-cost shipments like air freight and replace with standard shipping to ensure spare parts availability.
  • Increase field service technician efficiency by providing actual information about the next service order, installed base equipment records, and how the service job needs to be executed.

 

2) Building a Digital Business Model

 

  • Coordinating the network using actionable  data can help generate new business models in the future.
  • Providing intelligent data to other industries could also be sources of new revenue streams and competitive differentiation.
  • Building an open platform that allows all network stakeholders to easily consume  data, and new applications.

 

Based on my experiences, I think the digital transformation of Industrial Machinery & Components companies has already started and will reach an even greater momentum in the near future.

 

The question that companies in Industrial Machinery & Components industry should answer, is on which level of the digital maturity ladder they should operate in order to withstand the competition and build a sustainable business model in the digital age?

 

Looking forward to fruitful discussion on this topic.

 

Patrick Lamm is a Director of Industrial Machinery & Components in the Industrial Machinery & Components Industry Business Unit at SAP. Before Joining SAP, Patrick held various positions at Hewlett-Packard as business analyst in strategic supply chain planning and as business process and SAP engineer in multiple divisions going back to 1998. Starting at SAP in 2004, Patrick held the position of Senior Business Consultant focusing on strategic projects in supply chain management and IT Strateggy. Since 2008, Patrick is part of SAP's Industry Solution Management organization for Discrete Industries supporting partners and customers leveraging SAP solutions.

 

Patrick holds a master in industrial engineering from the University of Applied Science in Offenburg, Germany and a master of science in business administration in management information systems from the University of Cardiff, Wales.


SAP Mobile Platform registration methods available for Android Programming

$
0
0

Hi All,

 

The objective of this post is to explain all the methods that are available for registering a device in the SAP Mobile Platform using android programming.

I thought this was an important topic since there are many possible approachs to perform the registration, and it is difficult to get an insight in each of them when you are just giving your first steps using the SAP Mobile Platform and all the tools that it provides.

 

First of all, let's give a little definition of what is the On-boarding.

User on-boarding is the process of registering a user and giving them appropriate access to data and applications. Without being onboarded, a device is not available to use any of the functionalities provided by the SAP Mobile Platform, as Push Notifications, using authentication, etc.


There are three methods available for registering a device into the SMP for Android Native programming:

1) Calling the registration Endpoint provided by SMP


Request:

URL:

https://<SMP Server address>:<SMP Port>/odata/applications/latest/<appId>/Connections


METHOD:

POST


Header:

Content-Type: application/xml


Payload:

<?xml version="1.0" encoding="UTF-8"?>

<entry xmlns="http://www.w3.org/2005/Atom"

xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"

xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">

<content type="application/xml">

<m:properties>

<d:DeviceModel>Samsung Galaxy S2</d:DeviceModel>

<d:DeviceType>Android</d:DeviceType>

<d:DeviceSubType>Smartphone</d:DeviceSubType>

<d:DevicePhoneNumber>555-555-1212</d:DevicePhoneNumber>

<d:DeviceIMSI>123456</d:DeviceIMSI>

</m:properties>

</content>

</entry>

 

Response:

<entryxmlns="http://www.w3.org/2005/Atom"xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"xml:base="http://<host>:<port>/odata/applications/latest/<appId>/">

<id>

http://<host>:<port>/odata/applications/latest/<appId>/Connections('e6b41263-9d9d-4152-b148-34b95ae01a97')

</id>

<titletype="text" />

<updated>

2016-02-24T20:23:38Z

</updated>

<author>

<name />

</author>

<linkrel="edit"title="Connection"href="Connections('e6b41263-9d9d-4152-b148-34b95ae01a97')" />

<categoryterm="applications.Connection"scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />

<contenttype="application/xml">

<m:properties>

<d:ETag>

2016-02-24 17:23:38.0

</d:ETag>

<d:ApplicationConnectionId>

e6b41263-9d9d-4152-b148-34b95ae01a97

</d:ApplicationConnectionId>

<d:AndroidGcmPushEnabledm:type="Edm.Boolean">

true

</d:AndroidGcmPushEnabled>

<d:AndroidGcmRegistrationIdm:null="true" />

<d:AndroidGcmSenderId>

333666698688

</d:AndroidGcmSenderId>

<d:ApnsPushEnablem:type="Edm.Boolean">

true

</d:ApnsPushEnable>

<d:ApnsDeviceTokenm:null="true" />

<d:ApplicationVersion>

  1. 1.0

</d:ApplicationVersion>

<d:BlackberryPushEnabledm:type="Edm.Boolean">

false

</d:BlackberryPushEnabled>

<d:BlackberryDevicePinm:null="true" />

<d:BlackberryBESListenerPortm:type="Edm.Int32">

0

</d:BlackberryBESListenerPort>

<d:BlackberryPushAppIDm:null="true" />

<d:BlackberryPushBaseURLm:null="true" />

<d:BlackberryPushListenerPortm:type="Edm.Int32">

0

</d:BlackberryPushListenerPort>

<d:BlackberryListenerTypem:type="Edm.Int32">

0

</d:BlackberryListenerType>

<d:CollectClientUsageReportsm:type="Edm.Boolean">

false

</d:CollectClientUsageReports>

<d:ConnectionLogLevel>

NONE

</d:ConnectionLogLevel>

<d:CustomizationBundleIdm:null="true" />

<d:CustomCustom1 />

<d:CustomCustom2 />

<d:CustomCustom3 />

<d:CustomCustom4 />

<d:DeviceModel>

Samsung Galaxy S2

</d:DeviceModel>

<d:DeviceType>

Android

</d:DeviceType>

<d:DeviceSubType>

Smartphone

</d:DeviceSubType>

<d:DevicePhoneNumber>

555-5525-1212

</d:DevicePhoneNumber>

<d:DeviceIMSI>

123456

</d:DeviceIMSI>

<d:E2ETraceLevel>

Low

</d:E2ETraceLevel>

<d:EnableAppSpecificClientUsageKeysm:type="Edm.Boolean">

false

</d:EnableAppSpecificClientUsageKeys>

<d:FeatureVectorPolicyAllEnabledm:type="Edm.Boolean">

true

</d:FeatureVectorPolicyAllEnabled>

<d:LogEntryExpirym:type="Edm.Int32">

7

</d:LogEntryExpiry>

<d:MaxConnectionWaitTimeForClientUsagem:null="true" />

<d:MpnsChannelURIm:null="true" />

<d:MpnsPushEnablem:type="Edm.Boolean">

false

</d:MpnsPushEnable>

<d:PasswordPolicyEnabledm:type="Edm.Boolean">

false

</d:PasswordPolicyEnabled>

<d:PasswordPolicyDefaultPasswordAllowedm:type="Edm.Boolean">

false

</d:PasswordPolicyDefaultPasswordAllowed>

<d:PasswordPolicyMinLengthm:type="Edm.Int32">

8

</d:PasswordPolicyMinLength>

<d:PasswordPolicyDigitRequiredm:type="Edm.Boolean">

false

</d:PasswordPolicyDigitRequired>

<d:PasswordPolicyUpperRequiredm:type="Edm.Boolean">

false

</d:PasswordPolicyUpperRequired>

<d:PasswordPolicyLowerRequiredm:type="Edm.Boolean">

false

</d:PasswordPolicyLowerRequired>

<d:PasswordPolicySpecialRequiredm:type="Edm.Boolean">

false

</d:PasswordPolicySpecialRequired>

<d:PasswordPolicyExpiresInNDaysm:type="Edm.Int32">

0

</d:PasswordPolicyExpiresInNDays>

<d:PasswordPolicyMinUniqueCharsm:type="Edm.Int32">

0

</d:PasswordPolicyMinUniqueChars>

<d:PasswordPolicyLockTimeoutm:type="Edm.Int32">

0

</d:PasswordPolicyLockTimeout>

<d:PasswordPolicyRetryLimitm:type="Edm.Int32">

20

</d:PasswordPolicyRetryLimit>

<d:ProxyApplicationEndpoint>

http://ema.dummy.com

</d:ProxyApplicationEndpoint>

<d:ProxyPushEndpoint>

http://localhost:8080/Notification

</d:ProxyPushEndpoint>

<d:PublishedToMobilePlacem:type="Edm.Boolean">

false

</d:PublishedToMobilePlace>

<d:UploadLogsm:type="Edm.Boolean">

false

</d:UploadLogs>

<d:WnsChannelURIm:null="true" />

<d:WnsPushEnablem:type="Edm.Boolean">

true

</d:WnsPushEnable>

<d:InAppMessagingm:type="Edm.Boolean">

false

</d:InAppMessaging>

<d:FeatureVectorPolicym:type="Bag(applications.FeatureVectorPolicy)" />

</m:properties>

</content>

  </

entry>


If you want to investigate more in detail this method, please refer to the following URL:

http://help.sap.com/saphelp_smp307sdk/helpdata/en/8a/251b61893340c6ad2ba418679a19d1/content.htm


2) Using the MAF Logon Component


The MAF Logon component is one of the most common reusable components of the Mobile Application Framework (MAF) and it provides easy integration for applications that use logon UI behavior. It is a key component, because before any communication can take place with a backend OData producer, the app needs to on-board users onto the SAP Mobile Platform.

This component can be very useful if you are looking for a quick win, but in the case you want to developer an application that provides a personalized experience, I would recommend to go for the method 3.

This component is perfect if you are doing some test, or if you are building a PoC.


If you want to get more details from this component, check the following post:

http://a248.g.akamai.net/n/248/420835/5df1fcfbdd794e073a8acd0f584ac9fd679f1b00fe2ee8a7b95788cd6d17c49b/sapasset.download…


It is important to clear out, that there is a way to customize a little bit this screen, and this is explained in the following blog:

Customizing MAF Logon Component in Android


Below some screens on how this component looks like:

 

 



Img01.png



img02.png


img03.png


3) Using the oData SDK


This is the best method if you are looking for a personalized experience, where you can define the screen with all the fields you want to show, and whatever look & feel you want to use.

For instance, below you can see an example of a custom screen design, different to the one provided by the MAF Logon Component.


img05.png


If you are interested in this approach, I encourage you to take a look at the following post:

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/30304722-614d-3210-65a6-faf86a032319?QuickLink=index&…


See you in the next post!

Bye

Emanuel

 






Say ‘I Do’ to Employee Engagement: This Week in ASUG’s HR Community

$
0
0

Are you in love with your HR solutions? Whether you are still honeymooning or celebrating your twenty-fifth anniversary, ASUG’s HR Community has resources to help you make the most of your technology. This week, we look at how to spice up a stale relationship with your HR solutions with User Experience updates and gamification!

 

SAP® Successfactors® is Turning the Heat up on Employee Engagement:ASUG’s resident HR guru, Sherryanne Meyer, shares how simplification is essential to stay relevant. Highlights include a look at a new interface, for both cloud and on-premise HR solutions, and ways of “getting ‘em and keeping ‘em” when recruiting. She ends on a high note by revealing updates to SAP® Jam™ that will help develop your “informal, social, and shared” workforce.

 

Discussion – Retro-Calc. Changes Past Payroll Withholding Tax: Remember last week’s tax conundrum? This week, the HR community collaborated and finally found a solution – and it’s simpler than you may think. Thanks to Kenneth Moore for taking on this “taxing” endeavor.


SAP SuccessFactors Q1 2016 Business Update/Release Highlights: Although technology is more of a marathon than a sprint, if you don’t keep up you’ll be left in the dust. A recording of this webcast is now live on ASUG’s HR Community. Pick up your speed by hearing the latest Q1 updates and release highlights for SAP SuccessFactors. David Ludlow, Global VP of SAP HR and SAP SuccessFactors, sets the pace in this informative webcast.

 

SuccessFactors HCM Suite Roadmap: Core HR and Analytics:Although we are extremely spoiled by our smartphones and Google Maps, sometimes a good old roadmap is the way to go. ASUG and SAP have that covered. In this webinar, SAP project managers present product roadmaps for Employee Central, Cloud Payroll, and Workforce Analytics & Planning.

 

Practical Analytics for Business Users: A Discussion of the Tools and Techniques to Make Analytics Practical for You:In preparation for the March 14-16 Practical Analytics workshop, this webcast provides an overview of the lessons and hands-on activities that attendees will use. It’s an exclusive sneak peek into why the workshop is the right fit for you. Plus, registration is still buy one, get one half-off. Don’t miss this deal!

 

To see more HR resources and content, check out the ASUG HR Community and stay on the lookout for next week’s recap.

 

P.S. Don’t miss the RechargeHR Webcast Series for HR and HRIS professionals using SAP HCM and/or SAP SuccessFactors. Stay connected to the information, insights, and ideas you need to move your workplace forward in the twenty-first century.

Cross component corrections CW8/2016

$
0
0

Hi Guys,


HANA On Premise


You want to use GTS with S/4HANA on-Premise (oP) Note 2226408 provides information on which scenarios are supported. See also notes 2241931 and 2189824

 

More to follow...

 

Regards
GTS Support

Digital Telco - Why does it matter?

$
0
0

Digital TelcoJPG.JPG

The word 'Digital Telco' makes one think of a sort of nirvana for all the key stakeholders of a Telecommunications company. The definition I take is of an enterprise which understands and has the trust of its consumers, its employees, suppliers/partners and assets (more on this in my next post).

Going by that definition and as things stand today, to become a Digital Telco will require massive transformations for Telcos. For anyone who has been involved in a meaningful transformation, it is obvious that this is not something which will be easy to achieve. Hence, the first question is why bother and why is this important?

Consider the following:

  1. Public companies traded in the US now have a one-in-three chance of not successfully surviving the next five years, as per a recent BCG perspective article
  2. Consolidation in mobile is creating three operators across key markets reflecting quad play (Convergence of fixed, mobile, broadband & television) and tighter regulatory oversights.
  3. Margin consideration from becoming a pure utility is scary for a Telco.
    • According to a net margin data collated by NYU Stern, a typical general utility has a margin of 8.7% while a Telecom services company has a margin of 11.5%.
    • Global telecom services revenue in 2015 according to Statista is €1140 Billion. Difference in net profit from a change from a services to a utility business could mean €32 Billion of lost margins for Telco's globally.

With the above in mind, Digital Transformation and building a vision of a Digital Telco is no longer a choice but a necessity.

To survive and to thrive in the current environment driven by consumerisation, empowered consumers, disruptive technologies and a buzzing startup ecosystem; Telcos have to embrace Digital technologies and build a version of themselves which is much more agile, customer focused and closely connected both internally & externally.

 

Are there other drivers which are making Digital Transformation an imperative? Let me know your thoughts.

In my next post, I would like to offer some thoughts on what I imagine a Digital Telco to be.

SAP China Wins Sing Tao Daily Award for "Digitalization Transformation"

$
0
0

china1.jpegIn the late January, SAP won the prize of “Boost Enterprises' Digitalization Transformation” on IT Square Award Ceremony of Sing Tao Daily (Hong Kong) with S/4HANA and Run Simple.

 

As the awarding speech going, many enterprises are planning the digitalization transformation as a new digital era dawns for economy. SAP S/4HANA helps these firms come out on top in the transition, as it offers the advantages of real-time and simplification.

 

Meanwhile, SAP S/4HANA was awarded "Best Enterprise Business Suite Based On In-Memory" in Sing Tao IT Square Editors' Choices 2015 for simplifying the traditional IT framework and reducing complexity.

 

china2.jpeg

 

James Lee, Chief Operating Officer, SAP Greater China, states the success of SAP S/4HANA is due to the support from many partners, including Accenture, Ernst & Young, PricewaterhouseCoopers, Building Materials Information Technology Co., Ltd. and more. It helps clients to accelerate their digitalization transformation.

 

Want to join one of the world's largest and most diverse cloud tech companies? Apply to SAP today!http://bit.ly/1KO3TTo

 

You can also browse all of our open positions at -
http://jobs.sap.com


Learn more about the workplace culture at SAP, see pics of our offices, talk to recruiters, and get real time job openings by connecting with us on our social pages:

Glassdoor: http://bit.ly/glassdoor_lifeatsap

Facebook: http://facebook.com/LifeatSAP
Twitter:http://twitter.com/LifeatSAP

YouTube:http://youtube.com/lifeatsap

Instagram:http://instagram.com/LifeatSAP

Viewing all 2548 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>