1 2 3 15 Previous Next

SAP Social Software

221 Posts

Watch this recorded webcast to see a demonstration of SAP Jam. In it, our product expert explores how to:

 

  • Connect your customers, partners, and employees with information and processes to drive results
  • Improve employee engagement, boost productivity, and lower training costs
  • Accelerate the sales cycle and keep key stakeholders informed of progress and opportunities
  • Deliver a single, secure social collaboration foundation across your business

 

Sign up now to see how you can accelerate business and drive results with SAP Jam.

 

Register now

Join us for a live demonstration of SAP Jam and ask our product expert questions in a live, interactive webcast. In this demo, we’ll explore how to:

 

  • Connect your customers, partners, and employees with information and processes to drive results
  • Improve employee engagement, boost productivity, and lower training costs
  • Accelerate the sales cycle and keep key stakeholders informed of progress and opportunities
  • Deliver a single, secure social collaboration foundation across your business

 

Sign up now to see how you can accelerate business and drive results with SAP Jam.

 

Thursday, May 21, 2015

10 a.m. Pacific

60 minutes

Register now

1 Abstract

Here you can find information about an possible integration of SAP MDG and SAP Jam. This video shortly describes the use case: SAP Master Data Governance – Collaboration with SAP Jam.

The following sections define the use case and talk about its motivation, describe the architecture and its technical realization. More information can be found under www.sap.com/mdg and www.sap.com/jam.

 

2 Disclaimer

The integration of SAP MDG and SAP Jam is not shipped in a ready to use product from SAP but it is up to the interested party to use this description as a template to implement it. MDG is to be seen here as just an example of a tight integration of a SAP Backend and SAP Jam. All the implementation artefacts are modification free, only using Standard SAP extensibility mechanisms like POST-method implementations, new customizing entries or local classes. The example shows how even complex integration scenarios are possible.

 

3 Use case & motivation

Major Master Data Governance (MDG) processes rely on a flow of steps processed in a distinct order by different people and/or systems. MDG maps these process flows into SAP Standard Workflow. SAP Standard Workflow is intended to deal with straight forward and recurring process flows. Meaning, it’s the right tool if one sees that an action in general requires a certain process choreography. Changing the workflow regularly would be possible but is certainly not wanted especially when the majority of the processes are already covered by the workflow, the exceptions occur only occasionally and are not that predictable. If the workflow with its steps and mechanisms is not enough to further execute the process, other mechanisms are needed.

Below is a picture of workflow steps in a material change process in SAP MDG without Integrated Collaboration:

WF_old.jpg

The material has been created/changed by John Product (on the very left) which is handled by a change process within the MDG workflow. Different departments need to approve. Lisa Logistics starts working with the external Paul Trucker outside of the workflow tool as soon she is notified by the same.

For this specific MDG workflow (fitting to “90%” of the processes) the following characteristics are valid:

- MDG workflow is processed sequentially

- Communication with externals is not part of the workflow

 

SAP Jam integrated with MDG using SAP Standard Workflow is the mechanism which helps to efficiently process as well ad hoc processes or complement the standard workflow processes capturing ‘soft facts’ as e.g. discussions or additional information flows. Below is a picture of the workflow steps in the material change process in SAP MDG with Integrated Collaboration:

WF_new.jpg

The Workflow process is accelerated via parallel information processing supported by a professional collaboration tool (SAP Jam). With SAP Jam integrated the process fulfills the following characteristics:

- Parallel execution or preparation of tasks is possible in a collaborative workspace

- Easy inclusion of external participants (not foreseen in the standard Workflow solution)

- Usage of productivity tools in SAP Jam (File Upload; Feed; Blog; Wiki; Calendar; decision making tools; etc.

- Communication and shared information is preserved in SAP Jam (hence not hidden in personal mails and so accessible for all relevant parties)

 

Detailed step by step description:

1. John changes the material using a change request; when pressing SUBMIT a rule framework is processed which decides to start a “Jam Collaboration” in parallel to the standard Workflow. This enables the contributing parties to prepare and collect further needed Information, so they can execute the consecutive Workflow steps faster and access all preserved related information (decisions / files / information exchange (feed) centrally). As well external contributors can easily be involved. The following actions are executed automatically:

  • a MDG Jam group (in which all affected parties for change requests collaborate; created manually beforehand) is linked to the change request which can be displayed and accessed in the transaction using NetWeaver Business Client (NWBC)
  • a Business Object (here the MDG change request is the BO) related Feed entry is triggered into the MDG Jam group. Like this the change request is linked to the related Jam Objects which allows e.g.:
      • passing real-time data access from MDG backend to SAP Jam, to show MDG data directly in Jam
      • using hashtags to further structure information in SAP Jam (#MaterialChanged and #CRId), allowing to filter, search and organize the created information to support Jam users working on the change request
  • a related Jam Content folder is created to enable to collect all relevant documents
  • @mention is used in the feed post pointing to special SAP Jam Group members to alert them

John.jpg

John Products,

Product Manager,

working in SAP NWBC backend

2. Lisa gets an alert in SAP Jam and can already start to prepare her “Logistics Approve” in the workflow before the process step triggers her participation actively via the workflow; basically she can now use the full power of collaboration to already get prepared. To give some examples:

  • accessing data concerning the changed material in Jam (real-time) without navigating to the backend
  • commenting on the changed material
  • searching for related information via hashtags using the SAP Jam search (in SAP Jam # (hash tagging) is widely used for different kinds of objects like comments, replies, files etc.)

 

3. Out of the Business Record Viewer (see here) showing the changed material with details read real time from the backend system she creates a task for Paul Trucker (external logistics provider), passing on and requesting the relevant information:

  • a task description asking for the new transportation quote to be uploaded into the designated folder
  • a due date with a set reminder

Lisa.jpg

Lisa Logistic,
Logistics Manager,

working in SAP NWBC backend and SAP Jam

4. Paul (member of the designated SAP Jam Group) gets an alert in SAP Jam (e.g. via E Mail notification)

  • he checks the details
  • he uploads the requested data into the folder and sets the Jam Task to ‘completed’
  • all related comments, changes etc. are directly visible to him in Jam, so he does not need to organize parallel mail threads in his own mail environment.
  • Paul’s contributions like this are directly visible, so there is no further need to forward additional mails

Paul.jpg

Paul Trucker,

Transportation Officer,

working in SAP Jam only

5. Lisa gets notified about the completed task in Jam and parallel in the MDG transaction (NWBC Side Panel)

  • Lisa reviews the SAP Jam task and comments it, so other colleagues would see this in Jam and in the Side Panel Feed in NWBC

 

6. After receiving the ‘Finance Approve’ via the MDG Workflow she can activate the Change request right away without further delay

Lisa.jpg

Lisa Logistic,
Logistics Manager, working in SAP NWBC backend and SAP Jam

 

 

4 Architecture & Implementation

The prerequisite for this scenario are the following components in the SAP backend:

  • MDG_FND, MDG_APPL and MDG_UX SP02
  • ABAP SMI coming with UI Addon (UI2_FND, UI2_702) SP09
  • SAP_BS_FND 731 and SAP_BASIS >= 7.02 SP13
  • SAP Jam Enterprise licence

The whole process involves different technologies. The following table shows the different tasks that needs to be accomplished (the tasks are not sorted):

 

Tasks

Comment

#1

Backend System connection/configuration

#1.1

Building up a reverse proxy for externally available OData Services
[System Administration]

OData Services are used when sending the BO Feed entry to SAP Jam. With these, later on, backend objects can be exposed real time in SAP Jam. The reverse proxy changes internal application server information in the OData links with external ones – the external domain used by the company.

#1.2

Setting up trusted connections
[System Administration: Exchange of certificates]

System authorization: A backend system communicating with SAP Jam needs this sort of connection.

#1.3

Configure the backend against SAP Jam for ABAP SMI API and the SAIL API
[System Administration: API configuration & Exchange of certificates]

User authorization: Since the Side Panel uses the “old” SAIL API but the Jam Objects like groups are read with the ABAP SMI API both must be configured.

#1.4

Configure Side Panel in general
[Side Panel Framework Configuration]

In the NWBC a Side Panel must be configured.

#1.5

Configure Side Panel Collaboration Chips
[Side Panel Framework Configuration]

There are different Side Panel Chips: e.g. Master Details, Notes, Attachment…In this case we need the "SAP Jam Group" and the "SAP Jam Feed"-Chip.

#2

SAP Jam

#2.1

Configure MDG OData + Annotation Service as External Managed Objects and use the per user authentication for access
[System Administration]

All object types that should be exposed in SAP Jam must be registered. In this case e.g. Material Change Request.

#2.2

Setup the group "Material Change Request" with using the template
[SAP Jam Group preparation]

The Group "Material Change Request" is created exactly for the needs for exchanging MDG information. Each group can be tailored, also choosing from a wide range of business process templates.

#3

User

#3.1

Backend User with MDG + Side Panel roles
[Backend User Configuration]

The backend roles need to have the authorization for showing the material plus the Side Panel. These roles must be attached to the respective users.

#3.2

Workflow batch user needs an SAP Jam user assigned ("Material Workflow User")
[Backend User Configuration]

Workflows are processed by a batch user, which needs to be known by SAP Jam to let it create/read Jam objects.

#3.3

Jam User for all people involved + assignment to backend users
[Jam User Configuration]

-

#4

Development objects

#4.1

OData data Service suitable/accessible for the Business Record Viewer
[Application Development: Searching for/Programming and registering of the Service]

The OData Service are needed to expose the backend objects real time in SAP Jam. This is about the data.

#4.2

OData Annotation Service suitable/accessible for the Business Record Viewer
[Application Development: Searching for/
Programming and registering of the Service]

The annotation service defines how the data coming from another OData Service is structured, shown in the Business Record Viewer.

#4.3

New MDG Change Request Type for Jam integration and a SAP Business Workflow template that is called as a sub-workflow from the main MDG workflow.

[Application Configuration]

Not for every change of the material a Jam Feed Entry is created. There is a special workflow type which is called when the rules in the Business Rules Framework decide a processing in Jam is required.

It is recommended to set up a dedicated MDG Change Request Type for MDG processes with Jam integration. The assigned SAP Business Workflow template adds the calls to Jam where required.

#4.4

Calling SAP Jam from within the workflow
- reading out the Jam Group "Material Change Requests" and its members

- creating a folder

- assign the material change request to the Jam Group
- share the Change Request in the SAP Jam Group
- post BO related Feed entry with hashtags and links to OData/Annotation/Folders…
[Application Development: Programming and registering of the Service]

The special workflow type and its implementation reads and writes into SAP Jam using specific ABAP APIs.

#4.5

Side Panel: Tagging the Change Request Ids to be available in Side Panel bar
[Application Development: Programming]

To connect the application and the shown material/change request on the left with the Jam Group and Feed Chips in the Side Panel on the right the context (key values of the object) must be transferred. With this the Side Panel is context sensitive and shows the corresponding Jam objects related to the backend application object. The tagging is done in local POST-EXIT method implementations.


Additional information to the tasks grouped by categories:

Jam Only:

  • #2.2 Configure MDG OData…– Create and structure a SAP Jam Group to discuss Material Change Requests
  • #3.3 Jam User for all people involved…– Create users for the ones participating in the Material Change Request process and relate them to the backend system (often done in transaction su01 by entering the email-address)


Connect the backend system to SAP Jam (for creating/change Jam objects using the ABAP SMI API):

  • #1.2 Setting up trusted connections… and #1.3 Configure the backend against SAP Jam…– Use this guide Connecting SAP Jam with ABAP SMI to configure the connection. Monitoring and troubleshooting information for above mentioned configuration tasks: SAP Jam Connection


Working with MDG and interact with SAP Jam:

  • #3.1 Backend User with MDG…– For the Material Governance process a user needs the role SAP_MDG* roles. With having these roles and the respective permission one could open “Material Governance -> Change Requests -> Material Processing -> Search Material”.
  • #4.3 New MDG Change Request Type …– Make sure that the new sub workflow is called by the main workflow. In this case the main workflow “WS60800086 MDG_RBW” uses the SAP Business Rules Framework to determine then the sub workflow which calls the “Jam Integration ABAP class” which interacts with SAP Jam. The implementation is similar to How To - Master Data Governance for Material: Send a Mail Notification During the Governance Process. This guide gives an example for triggering an action in SAP Jam from within a workflow. Also, you might have a look at the guide Rule-Based Workflows for Material. The workflow is passing context information to the “Jam Integration ABAP class”. The context contains in this case the change request Id and the attached Jam group number.
  • #4.4 Calling SAP Jam from within the workflow…– For fulfilling this task the ABAP SMI developer documentation is necessary. It explains for example how to read out a Jam Group in an ABAP class. Also the OData v2 documentation and the knowledge about the Jam OData Model <yourLicencedServer>.sapjam.com/api/v1/OData/$metadata and the SAP Jam OData API Reference are helpful. With the help of the context transferred from the workflow the interaction with SAP Jam is possible. The following information is the context which is needed by the Jam integration processing:

  "Input parameter/context from the workflow
  lv_group_uuid = iv_group_uuid.   
"e.g. 'oSJFpcZw5dCcWjpwVhxY50'
  lv_bo_type = iv_bo_type.         
" e.g. 'BUS2250'
  lv_bo_id = lv_bo_id.             
" e.g. '4453m'

    • The group is read (using the Jam Group uuid) with its members to set the @mention later on (using ABAP SMI). The workflow holds the SAP Jam Group uuid in its customizing. The folder is created with the same technique (using ABAP SMI) – see the code snippet below (you can use the code snippet and all the following ones as template):

  lo_api ?= cl_odl_api=>s_create(
          iv_application_id
= 'DEFAULT'
          iv_platformtype 
= if_clb2_constants=>gc_platformtype-jam
          iv_service       
= 'DEFAULT' ).
  lo_request
= lo_api->get_request( iv_toplevel_resource = 'Groups' ).
  ls_key
-name = 'Id'.
  lv_char
= '''' && lv_group_uuid && ''''.
 
CONDENSE lv_char NO-GAPS.
  ls_key-value = lv_char.

 
APPEND ls_key TO lt_group_key.
  lo_request
->navigate_by_key( lt_group_key ).
  lo_request
->navigate( 'Folders' ).

 
CONCATENATE 'CR' iv_cr_id INTO lv_folder_name.
  lo_input_folder
= lo_api->create_input_entity( iv_name = 'Folder' ).
  lo_input_folder
->set_simple_property( iv_name  = 'Name'
                                      iv_value
= lv_folder_name ).
 
TRY.
      lo_request
->submit(
        io_entity
= lo_input_folder
        iv_access_operation 
= if_odl_request=>gc_access_operation-create
     
).
      lo_folder
= lo_request->get_result_entity( ).

          ...
   
CATCH cx_odl_process INTO lx_error.
   
CATCH cx_odl_process_dynamic.
 
ENDTRY.

    • The Change Request Id and the Jam Group id are needed to assign (in the context of the Side Panel) the newly created Change Request to the Jam Group (using SAIL API, see here the SAIL Programming Guide):

  TRY.
      lo_application_api
= cl_stw_api_factory=>s_create( iv_application_id      = 'SAIL'
                                                        iv_application_context
= '' ).
      lo_activity
= lo_application_api->get_activity( iv_activity_id = lv_main_group ).
     
CONCATENATE iv_cr_id '999999' INTO ls_borident-objkey.
      ls_borident
-objtype = 'BUS2250'.
      ls_borident
-logsys  = 'QMHCLNT405'.
      ld_sw_bo_id
= ls_borident.
      lo_sw_bo
= lo_sw_bo_api->get_bo( iv_bo_id = ld_sw_bo_id ).
      lv_bo_id
= lo_sw_bo->get_id( ).

      lo_sw_bo
->assign_activity( io_activity = lo_activity ).
   
CATCH cx_stw_technical INTO lx_root.
    ...

  ENDTRY.

    • To have the information from the backend change request in SAP Jam available, the object must be shared in SAP Jam Group. If this is done the post of the feed entry can be made referring to this existing object. The sequence of calls is as follows:

 

1. POST /api/v1/OData/ExternalObjects - sending the Change Request as External Object in the body. In case this is successful it is responded with “201 Created”. If the objects has already been shared it will just return the existing object.

The result can’t be seen/checked on the Jam UI.

  "======>0 map BO data and getting the API for subsequent calls
  TRY.
      lo_clb2_cust_queries
= cl_clb2_cust_queries=>s_get_instance( ).
      ls_odata_srv_info
= lo_clb2_cust_queries->get_registry_serv_by_bo_type2(
                  iv_bo_type
= 'BUS2250'
                  iv_platform_type
= if_clb2_constants=>gc_platformtype-jam
                  iv_appli_context
= 'MDG1' ).
      lv_int_service_url
= ls_odata_srv_info-request_uri.
      lv_int_odata_annotations_url
= ls_odata_srv_info-annotation_link.
      lo_int2ext_url_mapper
= cl_clb2_url_mapper=>s_get_instance( ).
      lv_ext_odata_service_url
= lo_int2ext_url_mapper->map2ext( lv_int_service_url ).
      lv_ext_odata_annotations_url
= lo_int2ext_url_mapper->map2ext( lv_int_odata_annotations_url ).
  CATCH cx_clb2_exception INTO lo_clb2_exception.
  ENDTRY.
  lo_api ?= cl_odl_api
=>s_create( iv_application_id = 'DEFAULT'
                                  iv_platformtype 
= if_clb2_constants=>gc_platformtype-jam
                                  iv_service       
= 'DEFAULT' ).
  "======>1. feature in Jam
  "since the change request is created each time you can directly feature a new external object
  "a prepare the Request
  CLEAR lo_request.
  lo_request
= lo_api->get_request( iv_toplevel_resource = 'ExternalObjects' ).
  lo_input 
= lo_api->create_input_entity( iv_name = 'ExternalObject' ).
  CONCATENATE lv_ext_odata_service_url '$metadata#' ls_odata_srv_info-collection_name INTO lv_ext_objt_url.
  CONCATENATE lv_ext_odata_service_url ls_odata_srv_info-collection_name '(' lv_bo_id ')' INTO lv_ext_exid_url.
  lo_input
->set_simple_property( EXPORTING iv_name  = 'Name'
  iv_value
= lv_change_title ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'Summary'
  iv_value
= 'MDG Summary' ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'Exid'
  iv_value
= lv_ext_exid_url ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'Permalink'
  iv_value
= lv_backend_uiurl ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'ODataAnnotations'
  iv_value
= lv_ext_odata_annotations_url ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'ODataMetadata'
  iv_value
= lv_ext_objt_url ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'ODataLink'
  iv_value
= lv_ext_exid_url ).
  lo_input
->set_simple_property( EXPORTING iv_name  = 'ObjectType'
  iv_value
= lv_ext_objt_url ).
  "b Submitting a Request
  TRY.
    lo_request->submit( io_entity      = lo_input

                        iv_http_method 
= if_clb2_constants=>gc_request_method-post ).
  CATCH cx_odl_process INTO lx_root.
  ENDTRY.
  "c Collecting the Results
  lv_xstring_xml 
= lo_request->get_raw_result( ).
  lv_result_code 
= lo_request->get_result_code( ).
  lo_featured   
= lo_request->get_result_entity( ).
  lo_propsimple 
= lo_featured->get_simple_property( 'Id' ).
  lv_tmp         
= lo_propsimple->get_value( ).


2. POST /api/v1/OData/Groups(Id='lv_group_uuid')/$links/FeaturedExternalObjects – linking the SAP Jam Group to the newly created External Object. The External Object URI is sent with the body. In case this is successful it is responded with “204 No Content”. If not you get e.g. 400 Bad Request and “ChangeRequestCollection(4453m) has already been shared in this group”. The result in Jam is that you see an entry like this in the Group feed updates:

group_feed_update.jpg

Furthermore the object is then linked to the group and is listed in the external object list from which you can navigate to the external objects rendered by the Business Record Viewer.

external_object_link.jpg

  "======>2. share in group
  "the object is not yet shared - share in group
  "a prepare the Request
  CLEAR lo_request.
  lo_request
= lo_api->get_request( iv_toplevel_resource = 'Groups' ).
  lo_request
->navigate_by_simple_key( EXPORTING iv_name    = 'Id'
  iv_value 
= '''' && lv_group_uuid && '''' ).
  lo_request
->navigate( iv_name = '$links' ).
  lo_request
->navigate( iv_name = 'FeaturedExternalObjects' ).
  "build xml body
  CONCATENATE 'ExternalObjects(''' lv_tmp ''')' INTO lv_external_object_url.
  CONCATENATE '<uri>' lv_external_object_url '</uri>' INTO lv_xml.
  lv_xstring_xml
= cl_clb_tools=>string_to_xstring( lv_xml ).
  "b Submitting a Request
  TRY.
    lo_request->submit( iv_content      = lv_xstring_xml

                        iv_http_method 
= if_clb2_constants=>gc_request_method-post ).
  CATCH cx_odl_process INTO lx_root.
  ENDTRY.
 
"c Collecting the Results
  lv_result_code
= lo_request->get_result_code( ).
  lv_xstring_xml
= lo_request->get_raw_result( ).


3. POST /api/v1/feed/post – sending the feed post to the Jam Group and referring to the External Object. In case this is successful it is responded with “200 OK”. The result in Jam is a feed entry underneath the group:

TI_feedentry.jpg


"======>2 post feed in Jam
  TRY.
    ls_appl_key
-application  = 'DEFAULT'.
    ls_appl_key
-platform_type = if_clb2_constants=>gc_platformtype-jam.
    lo_lib
= cl_clb2_lib=>s_get_instance( ls_appl_key ).
    lo_config
= lo_lib->get_configuration( ).
    ls_config
= lo_config->get_application_config( ).
    lo_clb2_process
= lo_lib->get_process(  ).
    lo_clb2_method ?= lo_clb2_process
->get_method( i_method = 'GENERIC' ).
   
"a prepare the Request
    ls_connection_data
-request_method = 'POST'.
    ls_connection_data
-endpoint      = '/api/v1/feed/post'.
    ls_connection_data
-auth_context  = 'USER'.
    lo_clb2_method
->init( iv_method_name    = 'GENERIC'
                          is_connection_data
= ls_connection_data
                          is_app_config     
= ls_config ).
    lo_clb2_method
->add_header_field( iv_name  = 'Content-Type'
                                      iv_value
= 'application/atom+xml' ).
    lo_clb2_method
->add_header_field( iv_name  = 'accept'
                                      iv_value
= 'application/atom+xml' ).
   
TRY.
       
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
         
EXPORTING
            username     
= sy-uname
            cache_results
= ''
         
IMPORTING
            address     
= ls_user_address
         
TABLES
           
return        = lt_return.
        lv_user_email
= ls_user_address-e_mail.
     
CATCH cx_stw_user.
   
ENDTRY.
   
"https://gw1.sap.de/sap/opu/odata/.../ChangeRequestCollection(3321)
    lv_object
= lv_ext_exid_url.             
   
"https://gw1.sap.de/sap/opu/odata/.../$metadata#ChangeRequestCollection
    lv_collec
= lv_ext_objt_url.             
   
"https://gw1.sap.de/sap/opu/odata/.../AnnotationCollection(''x'')/Content/$value
    lv_annota
= lv_ext_odata_annotations_url.
    lv_xml
= '<?xml version="1.0" encoding="utf-8" ?> ' &&
             
'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">' &&
               
'<entry> ' &&
                   
'<title>' && lv_change_title && '</title> ' &&
                   
'<published>2013-09-11T16:54:23Z</published> ' &&
                   
'<author>' &&
                     
'<email>' && lv_user_email && '</email>' &&
                     
'<name>' && sy-uname && '</name>' &&
                     
'<activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type> ' &&
                   
'</author>' &&
                   
'<activity:verb>http://activitystrea.ms/schema/1.0/update</activity:verb>' &&
                   
'<activity:object>  ' &&
                     
'<id> ' && lv_object && '</id>' &&
                     
'<title type="html">' && lv_change_title && '</title>' &&
                     
'<activity:object-type>' && lv_collec && '</activity:object-type> ' &&
                     
'<link rel="alternate" type="text/html" href="https://abc"/>' &&
                     
'<link rel="http://www.odata.org" href="' && lv_object && '"/>' &&
                     
'<link rel="http://www.odata.org/metadata" href="' && lv_collec && '"/>' &&
                     
'<link rel="http://www.odata.org/annotation" href="' && lv_annota && '"/>' &&
                     
'<source>' &&
                       
'<id>/groups/' && lv_group_uuid && '</id>' &&
                     
'</source>' &&
                   
'</activity:object>' &&
                   
'<content type="html">' && lv_change_text && '</content>' &&
             
'</entry>' &&
           
'</feed>'.
    lo_clb2_method
->set_data( lv_xml ).
   
"b Submitting a Request
    lo_clb2_process
->execute( iv_user_id  = lv_user_email
                              io_method   
= lo_clb2_method ).
   
"c Collecting the Results
    lv_result_code 
= lo_clb2_method->get_result_code( ).
    lv_result_data_x
= lo_clb2_method->get_raw_data( ).

        ...

Make the Side Panel work for MDG:

  • #3.2 Workflow batch user needs an SAP Jam user assigned…– Assign an email-address to the batch user that is known by SAP Jam (sometimes done in transaction su01, more often in separate systems)
  • #1.4 Configure Side Panel in general… and #1.5 Configure Side Panel Collaboration Chips…- Here you can find some information on how to configure Side Panel for Business Suite.
  • Since the Side Panel uses the SAIL API, it must be configured (#1.2 Setting up trusted connections… and #1.3 Configure the backend against SAP Jam for ABAP SMI API and the SAIL API…) using this guide Connecting SAP Jam with SAP ABAP Systems, otherwise there will be an error in SAP Jam Chips visible
  • #4.5 Side Panel: Tagging…– Here you see the successful tagged application:

side_panel.jpg

The “Change Request 3350” is related to the Jam Group “Material Change Requests”. To reach this connection a tagging needs to be done. The above UI is built up with Web Dynpro using this class CL_USMD_CR_GUIBB_GENERAL_DATA. In two methods which represent two different timepoints in which the UI is called, the context is set. Therefore here these PostExit methods need to be implemented in the same way: <IF_FPM_GUIBB_FORM>->GET_DEFINITION and <CL_GUIBB_BOL_BASE>->GET_ENTITY_DATA

  DATA:
  lo_fpm     
TYPE REF TO if_fpm,
  lo_cnr_ovp 
TYPE REF TO if_fpm_cnr_ovp,
  lv_crequest 
TYPE usmd_crequest.

  lo_fpm
= cl_fpm_factory=>get_instance( ).
 
IF lo_fpm IS NOT BOUND.
   
RETURN.
 
ENDIF.
  lo_cnr_ovp ?= lo_fpm
->get_service( cl_fpm_service_manager=>gc_key_cnr_ovp ).
* Set Tagging for JAM CHIP and value for BORTYPE
  lo_cnr_ovp
->set_tag_value(
    iv_tag  = '/BSSP/:BORTYPE'

    i_value
= 'BUS2250').
* Get CREQUEST ID
  lo_fpm
->mo_app_parameter->get_value(
         
EXPORTING iv_key  = 'USMD_CREQUEST'
         
IMPORTING ev_value = lv_crequest ).
* Set tagging value for CREQUEST
 
IF lv_crequest IS NOT INITIAL.
    lo_cnr_ovp
->set_tag_value(
      iv_tag  = '/BSSP/:USMD_CREQUEST'

      i_value
= lv_crequest ).
    lo_cnr_ovp
->set_tag_value(
      iv_tag  = '/BSSP/:TAB_INDEX'

      i_value
= '999999' ).
 
ENDIF.

 

Display data in the Business Record Viewer (below you see an example – the data are retrieved real-time from the backend system)

busRecViewer_details.jpg

  • #2.1 Configure MDG OData + Annotation Service as External Managed Objects…– This can first be done, if the services are available. For information about configuration tasks in SAP Jam, see the SAP Jam Admin Guide, the part “Developer Information”, which will lead you also to needed information about “External Application”. Here the needed per user authentication is described (Quicklink). There is also an SCN Guide available describing this per user authentication: http://scn.sap.com/docs/DOC-62582.
    Plus you might have a look in the “System Administration and Maintenance Information” (on the same page as “Developer Information”).
  • #4.1 OData Service accessible for the Business Record Viewer - If you don’t find a suitable OData Service that contains the information (from your backend object) that you want to display in SAP Jam you need to write your own OData Service. For MDG there was an existing productive OData service which was used. You can use this guide as a starter to the topic about developing your own OData Service The new SAP NetWeaver Gateway Service Builder: Build new OData Services in 3 Quick Steps
  • #4.2 OData Annotation Service suitable/accessible for the Business Record Viewer…- The annotations must be tailored to the OData data Service. Here you find a guideline from SAP Jam on how the annotation must be built up Develop an OData annotations file to display business records. The OData annotation Service can be part of the data OData Service or exposed as a separate service.
  • #1.1 Building up reverse proxy…– Without this you would expose the OData Server links with internal server information <internalServer>.<ODataEndpoints>. But you want to have them externally accessible so that SAP Jam can call them. Therefore you need to have a proxy system in between mapping this information. This admin guide Sending Notifications to SAP Jam explains in chapter “Defining URL Rewriting” how to setup the reverse proxy. Attention does not describe the setup of the MDG scenario.


Martin Steinhauser, Christoph Ehrhardt and Christoph Gollmick from Social Media Collaboration Integration together with

Lars Rüter from Master Data Governance

Run Simple with Social Collaboration
SAPPHIRENOW_Logo.png

This year’s SAPPHIRE NOW + ASUG Annual Conference is taking place in Orlando from May 5-7, 2015. When at the event, don't miss the sessions focusing on SAP Jam’s social collaboration capabilities.

 

Below is an overview of all the sessions relating to SAP Jam at SAPPHIRE NOW. It's time to build your agenda!

 

HRPreConferenceScreenshot.GIF

Monday, May 4 ASUG Pre-Conference

 

Tuesday, May 5 Sessions

 

Wednesday, May 6 Sessions

 

Thursday, May 7 Sessions

 

Please also visit our Demo Pod, located in the in the Lines of Business Campus. Here, you can meet SAP Jam experts and witness the solution first-hand.  Get social, in-person or virtually. Follow the conversation using the hashtag, #SAPPHIRENOW. We look forward to seeing you in Orlando!

A new report from IDC has recognized SAP as a leader in social technology in talent management. The report, IDC MarketScape: Worldwide Social Technologies in Integrated Talent Management 2015 Vendor Assessment, by Lisa Rowan, #255616, calls out the social capabilities of SAP Jam, which enables collaboration across the full portfolio of SuccessFactors and SAP solutions as well as third-party solutions.

 

The report was based in part on a survey of over 500 HR executives who were asked to rate the social capabilities of their talent management vendor. This report follows another IDC report from last fall, The IDC MarketScape: Worldwide  Enterprise Social Networks 2014 Vendor Assessment, doc #252332, November 2014, which named SAP Jam a category leader.

 

SAP Jam incorporates collaboration seamlessly into business-critical processes across the company like learning, performance management, and onboarding to improve real business metrics in these areas. By enabling collaboration at every level of business, companies can increase employee engagement and drive better results.

 

“In addition to covering all the talent functions,” the report states, “SAP Jam also offers work patterns that are predefined social processes based on best practices, which enable teams to get up and get running quickly while taking advantage of social collaboration to improve their work and more quickly meet their KPIs.”

 

Work patterns are a value proposition unique to SAP Jam that has helped it grow to more than 17.5 million subscribers.

 

 

The IDC MarketScape reports assess vendors’ social technology, recruiting, learning management, performance management and compensation management solutions through the IDC MarketScape model.

 

Learn more

 

 

Video: SAP Jam for HR, Learning, and Knowledge Management

 

How simple is the technology you use in your business? On its own, you may say, each piece of technology is simple enough.

 

graph_330.jpgBut what if you work for a global enterprise? Even if it’s just an average-sized one, your business is likely to use more than a thousand applications. As simple as each application may be on its own, complexity becomes a factor at that scale. How do applications connected to the same process work together? How do users share data across applications? Can employees even access the right applications at the right time?

 

It’s not surprising, then, that 60% of respondents to a recent survey[1] said technology complexity has inhibited the ability of their business to meet goals. 74% said complexity in business processes and decision making did the same.

 

But complexity isn’t just an unmeasurable nuisance – it hits the bottom line, and hits it hard. One study found that complexity caused 200 of the largest companies in the world to lose over $200 billion a year in profit.

 

Complexity slows the flow of information

 

One of the most pernicious examples of complexity affecting business results is when it involves collaboration.

 

When a business has many applications, it often also has many separate silos of collaboration. Stakeholders can collaborate within each application, but if a business process involves multiple applications, the flow of information slows. Users resort to pulling documents, data, files, and screenshots out of one application and sharing them in another – or often by email. Sometimes the information is out of date, and sometimes it simply never gets shared even though it should.

 

Imagine how that can impact business results: Fewer new ideas area shared. New hires take longer to get up to speed. Customer service resolution times slow down. The time it takes to close new sales deals increases.

 

Simplify collaboration for better business results

 

But what if you could implement a single, unified platform for collaboration across your business processes and applications? That act of simplifying collaboration would have sweeping results for your business. You’d have a single, clear channel of communication to help keep everyone on the same page and committed to the right goals. Employees would be able to find experts, exchange ideas, share knowledge, and develop skills more effectively. By providing for open, rich dialog directly in the context of business data such as sales opportunities, service tickets, marketing campaigns, and business intelligence results, you’d speed business, reduce errors, and improve performance.

 

An independent study[2] confirms the results. Better, simpler collaboration does lead to better business performance. The study’s findings show that a typical organization using SAP Jam – a secure, cloud-based social software platform – can experience:

 

infographic_310.png

  • An average revenue increase of $9.63 million. Over three years, a typical organization can reduce the time to close new business by more than nine percent, leading to additional revenue opportunity of $9.63 million.
  • Recouping of employees time valued at $7 million. With SAP Jam, companies experienced a 14% decrease in time to access information and expertise, providing a more than $7 million gain.
  • Savings of more than $1.6 million in training and onboarding. Organizations reduced costs to train and onboard new employees by 13 percent, saving more than $1.6 million.
  • Savings of more than $1.1 million in serving customers. Companies resolved customer service issues more quickly with SAP Jam, leading to more than $1.1 million in savings.

 

If you’re interested in how your business could benefit from shorter sales cycle times, decreased time to access information and expertise, and lower costs associated with common business processes such as onboarding new employees, join our webcast on April 29.

 

1. Simplifying the Future of Work, Knowledge@Wharton

2. The Total Economic Impact of SAP Jam, a March 2015 commissioned study conducted by Forrester Consulting on behalf of SAP


Follow SAP Social Software on Twitter: @SAPSocial

tei_cover.pngAccording to a Forrester Consulting study commissioned by SAP, “The Total Economic Impact of SAP Jam,” a typical organization may realize a potential 516 percent return on investment by deploying SAP Jam.

 

Companies can improve sales cycle times, decrease time to access information and expertise, and lower costs associated with common business processes such as onboarding new employees by deploying SAP Jam, the study found.

 

The study polled managers, directors, and senior business and IT leaders heavily involved with their organization’s implementation of SAP Jam.

 

The findings show that a typical organization using SAP Jam can experience:

 

Recorded webcast

Join Forrester Research principal analyst Claire Schooley and senior consultant Liz Witherspoon for a social software market overview and highlights from the study.
Watch now

infographic_310.png

  • An average revenue increase of $9.63 million. Over three years, a typical organization can reduce the time to close new business by more than nine percent, leading to additional revenue opportunity of $9.63 million.
  • Recouping of employees time valued at $7 million. With SAP Jam, companies experienced a 14% decrease in time to access information and expertise, providing a more than $7 million gain.
  • Savings of more than $1.6 million in training and onboarding. Organizations reduced costs to train and onboard new employees by 13 percent, saving more than $1.6 million.
  • Savings of more than $1.1 million in serving customers. Companies resolved customer service issues more quickly with SAP Jam, leading to more than $1.1 million in savings.

 

To learn more about the study, watch our recorded webcast with guest speakers Forrester Research principal analyst Claire Schooley and senior consultant Liz Witherspoon.

 

 

Follow SAP Social Software on Twitter: @SAPSocial

The Importance of SAP Jam Implementation & Adoption Expertise


The rewards of using SAP Jam are awesome! Getting to the point where business and IT value is realized takes time, logic, dedication, and expertise.  Successful SAP Jam implementations and adoption requires many considerations, some of which are often overlooked.


Piano.pngIt reminds me of the day when my family got a piano from my in-laws house for our son. While other children and friends would bang on the keys he wanted to play meaningful songs at an early age. There were adult friends and teachers who remembered playing a bit growing up (or knew a few songs) but could only offer a few ideas around how to play the piano beyond the basics.

 

Only when we got an expert piano teacher (on the second try) who had the style and skills which were complimentary to his interests did we see his enjoyment and piano playing skills soar forward.


snowflakes.shutterstock_115134508.jpgFor my team and I working with leading customers and business units around the globe we see that no two SAP Jam implementations are alike. Like a snow flake each one has its own unique work patterns based on their customers, industry, lines of business and culture.


As a result we must be agile and dig deep on each engagement to address a wide range of skills, requirements, work experiences which range from HR, Learning, Onboarding …to Sales, Marketing, Services, Commerce and Customer Engagement …to Communications, IT, Procurement, Operations, Communities of Practice, and User Experiences ...to working within a wide range of SAP and 3rd Party Apps and related Management Information System (MIS) environments …to the ability to write, provide visual consistency, and program management …as well as help turn complexity into …simplicity.


There are a number of best practice guidelines to consider:


ROI.Diagram.pngConsideration #1 – Getting Started!

  • Understanding the business requirements
  • Enabling overall usability
  • Translating the business process to SAP Jam
  • Ensuring relevance by way of content / communications
  • Utilizing dynamic widgets vs. static text and images
  • Assessing Change Management
  • Ensuring participation


Consideration #2 – ROI & Value

Pinpoint the SAP Jam Return On Investment (ROI) and business drivers important to your organization centered around “Time” “Money” and “People” scalability to ensure measurable ("quantifiable" and "qualifiable") gains.


Consideration #3 – Differentiators

SAP Jam is a unique market leading solution.  It seamlessly integrates social business capabilities into existing (& planned) business process whereas as other 3rd party platforms are focused on the tools.  SAP has made SAP Jam an integral part of all SAP solutions addressing:

  • All lines of business centric vs. CRM as the primary
  • One SAP Jam vision vs. multiple roadmaps which have overlaps
  • SAP’s proven 40-year history of business software, processes, and market leadership
  • Collaborative ecosystem (Out of the Box – i.e. OpenText, Box, SharePoint, etc.)
  • Application integration (i.e. OData, REST APIs) by utilizing the SAP Jam Developer Center
  • Integrated platform as a foundational principal vs. a standalone which increases costs
  • Internal & external SAP Jam group capabilities which easily set-up
  • Structured collaboration to support problem solving, issue resolution, and decision making
  • Screen and video capture
  • Mobile App alignment with SAP Jam Page Designer provides out of the box mobile capabilities


Consideration #4 – Roles & Responsibilities

When addressing an SAP Jam initiative the executive sponsor, business owner(s), and project leader must consider 3 key roles including:

  • Administrator(s) (or Power Users)
  • Content Manager(s) (& Contributors)
  • End Users


While one SAP Jam tactical action can be straight forward. Each action has a consequence on another aspect of the project or initiative.


Chess.pngFor those of us who watch (or remember) Star Trek and Spok’s 3D chess game, each move has an impact to another chess piece which may be on the board you are working on or another.  It takes a lot of SAP Jam experience to address these moves which have important relationships to other business processes.


A successful SAP Jam implementation addresses 5 phases:

  1. Preparation
  2. Realization
  3. Verification
  4. Launch
  5. Post Go-Live


Eagle.pngIt takes vision, leadership, teamwork, compelling business outcomes, and passion to build any successful community which meets either face-to-face or virtually. SAP Jam requires the same consideration to achieve successful implementations and adoption.


Whether its learning how to play the piano or SAP Jam, it takes multi-dimensional expertise to ensure that all the "keys and pedals" are optimized.


SAP Jam has many self-evident, out of the box templates and capabilities that are excellent, but to gain the full advantage it takes the right skills, work experiences, and expertise to achieve the highest level of success.



---
RDB.jpgAbout the Author
Richard D. Blumberg, President, World Sales Solutions, LLC (WSS) (www.WorldSalesSolutions.com) provides 25+ years of thought leadership on a variety of "View from the Top" strategies including: Enterprise Social Business, Go-to-Market Strategies, Business Development, Talent Development, and Community Building.  He and his team are recognized SAP Jam global experts for implementations and adoption.

WSS is a SAP Service Partner for SAP Jam and long-time supporter of the SAP Community Network and the SAP Ecosystem.

Prior Blogs:
- View from the Top: Bill McDermott shares his success secrets at a #fireside chat!
- The Path to SAP Jam ROI Success

- SAP Jam Work Patterns:  The Big $ or € &/or ¥ Game Changer for a New Product Launch!
- SAP Jam: The ROI Impacting Sales Productivity

- Split Second Selling with SAP Jam - 7 Use Cases!

- The Customer Go-to-Market Imperative - Transforming Silos to Social Business and Community Building












Register now

 

Watch this demonstration to see how SAP Jam can help you:

 

  • Connect your customers, partners, and employees with information and processes to drive results
  • Improve employee engagement, boost productivity, and lower training costs
  • Accelerate the sales cycle and keep key stakeholders informed of progress and opportunities
  • Deliver a single, secure social collaboration foundation across your business

 

Sign up now to see how you can accelerate business and drive results with SAP Jam.

Register now

 

HR is moving beyond its traditional role of managing internal employee processes. More and more companies are turning to HR professionals for strategies to address critical challenges like workforce diversity and the chronic skills gap. Social collaboration is emerging as a key enabler for these efforts.

 

Discover how and why—listen to this informative recorded webinar and hear industry analyst, author, and expert Irwin Lazar explain:

 

  • How HR specialists are becoming drivers of change
  • Why short-term training is evolving into continuous learning
  • How the synergy of social, mobile, and cloud is changing employee workstyles
  • What to look for in a provider of social collaboration tools

 

Register now

 

headshot_irwinlazar.jpgFeatured speaker:

Irwin Lazar, Vice President and Service Director, Nemertes Research

A prolific author, blogger, and frequent speaker at industry events, Irwin Lazar heads up a Nemertes research team that helps enterprises quantify the value of emerging technologies.

 

Related blog post: What should companies look for in a social collaboration solution? An interview with Irwin Lazar

 

 

 

Follow SAP Social Software on Twitter: @SAPSocial

1.png

In my last blog post, I talked about how to keep a close tab on important SAP Jam groups using the new “feed navigation quick menu.” In this post, I want to talk about going laptop-less.

 

When we designed the new SAP Jam mobile app for iPhone and iPad, one of the key goals we had was to create an app with features that help mobile workers – sometimes called “road warriors” – to better collaborate with others and help them feel more connected to the rest of the organization.

 

While gathering requirements for our initial release, we received a lot of requests from mobile workers – such as sales executives and field service technicians – for features that would allow them to leave their laptop at work and live a laptop-less existence with the help of SAP Jam and their mobile device. In all fairness, today’s smart phones and tablets are becoming more and more like laptops from both a computing-power and an application-support perspective. In support of this goal, we’ve added the ability to upload and share documents directly from the SAP Jam mobile app.

 

Imagine you are Perry Johnson, a sales executive on the road visiting a key customer, Lavender Restaurant Group (LRG), which recently submitted an RFP for a 14 million USD project to add solar heating to all of their restaurant locations in California. Perry is using an iPad as his primary computer for this trip. LRG has just emailed him an updated version of the RFP based on discussions they just had. He’d like to share this with the account SWAT team and quickly get their input on whether the new provisions are possible, as he only has two days to reply to meet their deadline.

 

With the new SAP Jam mobile app for iPhone and iPad, Perry can upload a document for collaboration straight from his Safari browser or any native application with document support. In the example below, Perry uses a web email client. He opens the document by tapping on it just as he normally would.

2.png

iOS opens the document and presents Perry with a preview of the RFP. On the upper right-hand side of the preview, Perry is presented with a dialog: Open in SAP Jam. Perry taps on the dialog and SAP Jam opens the document and prepares it for upload to SAP Jam for collaboration.

3.png

4.png

Perry selects the LRG Account group to upload the document to, as he knows that a number of top solar panel engineers are closely monitoring this group in support of this potentially lucrative deal.

5.png

6.png

7.png

With the new RFP uploaded, Perry knows that he will get a push notification as soon as the solar panel engineers have a chance to review and respond to the updated requirements. He can focus on other pressing matters, such as locating sufficient inventory for the potential project with LRG.

 

In this example, we showed how easy it is for a road warrior like Perry to live a laptop-less existence with the SAP Jam mobile app. He can not only travel more lightly, but also increase his productivity with tighter real-time collaboration with his team back at the office.

 

Download the updated SAP Jam mobile app for iPhone and iPad from the App Store today and try out a laptop-less existence for yourself.

 

Follow SAP Social Software on Twitter: @SAPSocial

Welcome to the new SAP Jam – release 1502. This release brings a variety of administrative and ease-of-use enhancements as well as several new features.  As always, the majority of enhancements in SAP Jam releases are driven directly by customer feedback. This posting will cover highlights in the following topics.

 

New work pattern

 

Personal time zone for events and calendars

 

Notifications

 

Content & content management

 

Administrative

 


New high tech manufacturing industry work pattern: Design registration for use with SAP Cloud for Customer

 

New in release 1502 is the first industry-focused work pattern: High tech manufacturing design registration. This work pattern is exclusively available to customers of SAP Cloud for Customer, enabling manufacturing companies (specifically semiconductor and component manufacturers) to collaborate and communicate with channel partners by automating the design registration life cycle to maximize channel revenue and increase design wins. Additionally, brand owners can monitor their pipeline, analyze risks, and get accurate forecasts, allowing them to understand how their business is doing.

 

Personal time zone for events and calendars

When working with meetings and events that involve colleagues in other time zones and counties, we've made it easier to keep yourself on schedule – a personalized time zone per event. In addition to being able to save the event to your personal email/calendaring application, you can now also tell SAP Jam what time zone you’d like the event represented in when you look at it, regardless of what time zone the meeting owner scheduled it in. This lets you know the correct time for your local time zone, as well as the original time zone it was scheduled in.

 

 

Notifications

notification-summary-tile.PNGNotifications tile

 

To the right of your home feed, there’s a new “notification summary” tile that gives you a quick and easy view of the different notifications you have pending. You can see how many requests you have, social updates, group invites, and tasks. Then, from the tile, you can click through to a filtered view of your notifications.

 

 

Notifications filters

The new notifications filter view allows you to quickly and easily see all your notifications, or a subset, by category.  From the filtered view, you can then take action or dismiss notifications as before, but also mass-dismiss all notifications in that category, saving you time and mouse-clicks.

 

 

 

 

Content & content management

Content ratings

content-rating.pngThe new content rating capability allows colleagues to rate documents on a one- to five-star rating. Content owners can then use the ratings to identify helpful content as well as content that need improvement. Content ratings are visible in the content list view of a group as a new column, as well as on the single-item view of the document in the right sidebar panel (where the description and details are viewed). Users can change their rating at any time in the future as you make content updates.

 

Content rank report

Group administrators can now use a new report to see the popularity of group content, utilizing the new content ratings to see how documents are rated across the entire group.

 

Image album browsing

album-browsing.pngUsers of SAP Jam asked for a way to make it easier to browse multiple images while looking at folder. We've added left (previous) and right (next) buttons that appear when looking at an image in the single-item view. Clicking either of these buttons takes you to the respective previous or next image within the same content folder.

 

Content permissions before/during upload

To prevent unintentional access or viewing of documents before their permissions have been set, we've made it possible for content owners to set permissions at the same time that they upload documents.

 

Content drafts

When working with wikis, blogs, overview pages, and forum items (questions, ideas, and discussions), drafts are conveniently saved every 10 seconds automatically by SAP Jam. You can additionally force a draft save via the “save draft” button. If you save a draft of an item, you’ll see a new drafts section at the top of the content area. When working on items, you can also add links, files and photos to your draft and these won’t appear in the content area of the group until it’s published.

 

Content versioning for images

Along with all other uploaded documents, images now support versioning, allowing you to see and keep track of prior versions. This will make it much easier for group administrators to keep track of images and make sure only the “latest” version is exposed.

 

Revert to a specific version of a document

content versions.pngThe new capability to revert to a specific version of a document makes it easier to manage versions. If you think a prior version is better than the most recent, reverting to the older one will create a new copy with the prior version’s content, while also maintaining the version history.

 

Delete specific versions of documents

If you’re a marketing or HR professional, there are occasions where having a specific version of a document that includes errors might cause problems. The new capability to delete a specific version eliminates this confusion. When looking at the prior versions of a document, a version that was deleted is indicated as being deleted, but is no longer accessible.

 

 

Administrative

 

Overview pages and links now included in consumption reports

If you like to measure the effectiveness and engagement of your SAP Jam groups, the newly added metrics will boost your reporting, giving you visibility into the performance of the various overview pages and links in reports. You can now see the metrics for all content in your group, which means you can see what content and pages aren't getting the attention they deserve.

 

Group member list report updated with new fields

Group administrators asked the SAP Jam team for a way to identify when their “1,000th” member joined (for example). To make this possible without asking your company's IT department for help, we've added the “join date” column to the group member list export (from the group member page). Additionally, the "status," "email notification setting," and "following" fields are available.

 

 

For more information

For more information about what else is included in this release, refer to the release notes on the SAP Jam help site: http://help.sap.com/sapjam

 

Be sure to review the user guides, which are now separated by role:

 

  • User guide (for everyone using SAP Jam)
  • Group admin guide (for group administrators)
  • Administrator's guide (for company administrators)
  • Mobile app user's guide (for everyone)
  • Developer's guide (for integration, our API, and more)

 

Follow SAP Social Software on Twitter: @SAPSocial

SAP Jam is the social collaboration software from SAP. While more and more customers use it, the request comes up to customize Jam to individual needs of a company. For this purpose, with the current release (1502), it´s possible to easily integrate OpenSocial applications into Jam to individualize it. During my one-week internship in the Jam team I built a simple OpenSocial gadget which expands the profile data of users by adding expertises. This document shows my first steps of developing an OpenSocial gadget and gives a short introduction of how to get started with an OpenSocial gadget.

 

 

Structure

OpenSocial apps are specified in XML. The <Module> tag indicates that the file contains a gadget. In the <ModulePrefs> information about the application like title, author or height can be defined. <Content type="html"> indicates that the content of the gadget is HTML. This content is defined in <![CDATA[ … ]]>. It can contain HTML, CSS or JavaScript. You can see a simple example of a hello world gadget below.

 

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

<Module>

                <ModulePrefs title="Hello world gadget">

                </ModulePrefs>

                <Content type="html">

                               <![CDATA[

                                               Hello world!

                               ]]>

                </Content>

</Module>

 

To implement a gadget no special software is needed, a simple texteditor is sufficient. After writing the XML, the file has to be uploaded on a public web server, I used https://infotomb.com/. Later, only the URL of the gadget will be needed to include it into Jam.

 

 

Including in SAP Jam

Login into your SAP Jam instance, navigate to Admin page and open the OpenSocial gadgets page in the menu on the left.


goToGadgets.png

 

Now a list of all OpenSocial gadgets which are available can be seen. On top of the list in the right corner there is the link “Add OpenSocial Gadget”.

 

register.png

 

First, the URL of the uploaded file has to be inserted. Afterwards it can be decided whether the gadget should be enabled or not and if it should be a content or a profile gadget. Content gadgets can be added to a group's content section by anyone in the company with the appropriate privileges. Profile gadgets appear on the profile of each member of the company automatically.

Afterwards by clicking at “Refresh” we can see further information about the gadget and in the lower part a Preview of it (if the gadget is enabled).

The gadget information and preview of the ‘hello world gadget’ from above looks similar to the following picture:

 

infoAndPreview.png

 

Further expansion of the gadget

As said before, this gadget should be a profile extension to add special expertises of a user. Actually the functionality of the gadget has not been fully completed, the storage of inserted values is missing. Nonetheless, it shows how to generate a simple OpenSocial gadget and how to read out information from Jam with it.

 

First, I wanted to welcome the user with his or her name. Therefore I had to add a feature to the module preferences <Require feature="osapi"/>.  Afterwards, I needed to write some HTML code were the name should be displayed, for example the following:

 

<div id="content">

        <div id="greeting"> Hello <span id="current_user_id"> </span>

        </div>

</div>


In addition a JavaScript function to get the name and write it into the DOM has to be written. This function could for example be the following:

 

<script type="text/javascript">

        function init() {

            osapi.people.getViewer().execute(function(viewerData) {

            if (!viewerData.error) {

              var viewerDiv = document.getElementById('current_user_id');

              viewerDiv.innerHTML = viewerData.displayName;

            };

          });

        }

</script>

 

At least an onload handler has to be registered. This handler is executed when the gadget loads and calls the init function.

                gadgets.util.registerOnLoadHandler(init);

Now the code looks similar to the code below. Only the highlighted lines were edited compared to the hello world code.  By uploading it and including it into Jam, the preview should show “Hello <your name>”.

 

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

<Module>

  <ModulePrefs title="Hello, world!" height="400">

    <Require feature="osapi"/>

  </ModulePrefs>

  <Content type="html">

    <![CDATA[

      <script type="text/javascript">

        function init() {

            osapi.people.getViewer().execute(function(viewerData) {

            if (!viewerData.error) {

              var viewerDiv = document.getElementById('current_user_id');

              viewerDiv.innerHTML = viewerData.displayName;

            };

          });

        }

        gadgets.util.registerOnLoadHandler(init);

      </script>

 

      <div id="content">

        <div id="greeting"> Hello <span id="current_user_id"> </span>

        </div>

      </div>

    ]]>

  </Content>

</Module>

 

After learning how to read out data, I wanted to offer a form to insert special expertises. Therefor I write the following HTML code:

 

<div id="editForm">

          <br>

          <form action="#">

            <div id="sector">

              <label>sector: </label>

              <select name="sectorInput" size="1">

                <option> sector 1</option>

                <option> sector 2</option>

                <option> sector 3</option>

                <option> sector 4</option>

                <option> sector 5</option>

              </select>

              knowledge: low

              <input type="radio" name="sectorRating" value="0">

              <input type="radio" name="sectorRating" value="1">

              <input type="radio" name="sectorRating" value="2">

              <input type="radio" name="sectorRating" value="3">

              <input type="radio" name="sectorRating" value="4"> high

            </div>

            <br>

            <div id="country">

              <label>country: </label>

              <select name="countryInput" size="1">

                <option> country1</option>

                <option> country2</option>

                <option> country3</option>

                <option> country4</option>

                <option> country5</option>

              </select>

              knowledge: low

              <input type="radio" name="countryRating" value="0">

              <input type="radio" name="countryRating" value="1">

              <input type="radio" name="countryRating" value="2">

              <input type="radio" name="countryRating" value="3">

              <input type="radio" name="countryRating" value="4"> high

            </div>

            <br>

            <div id="project">

              <label>project: </label>

              <input type="text" name="projectInput" size="50">

            </div>

            <br>

            <div id="specialist knowledge">

              <label>specialist knowledge:</label>

              <input type="text" name="specKnowledgeInput" size="50">

            </div>

            <br>

            <br>

            <input type="button" value="Save" onclick="save()"/>

          </form>

 

To format the HTML I added some CSS lines:

 

    <style type="text/css">

      label { display: inline-block; width: 100px; }

      select { display: inline-block; width: 100px; }

    </style>

 

After defining the content, I wrote a further JavaScript function to handle the button click. This save function reads out the values of the form and opens a new message which indicates that the values were saved.

At first the minimessage feature has to be added to the module preferences.

 

                <Require feature="minimessage"/>

 

Afterwards the save function had to be defined. The inserted values of the form has to be selected and a message has to be generated. In future work, these values has to be stored for later use.

 

function save(){

        var sector=document.getElementsByName('sectorInput')[0].value;

        var country=document.getElementsByName('countryInput'[0]).value;

        var project=document.getElementsByName('projectInput')[0].value;

        var specKnowledge=document.getElementsByName('specKnowledgeInput')[0].value;

       // <here the values has to be stored for later usage>

        var saveMessage = new gadgets.MiniMessage(__MODULE_ID__);

        saveMessage.createDismissibleMessage("Your expertises were saved");

}

 

 

end.png

 

Finally, here you can find the whole code of the gadget:

 

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

<Module>

  <ModulePrefs title=" Hello world gadget" height="400">

    <Require feature="osapi"/>

    <Require feature="minimessage"/>

  </ModulePrefs>

  <Content type="html">

    <![CDATA[

      <script type="text/javascript">

        function save(){

          var sector=document.getElementsByName('sectorInput')[0].value;

          var country=document.getElementsByName('countryInput'[0]).value;

          var project=document.getElementsByName('projectInput')[0].value;

          var specKnowledge=document.getElementsByName('specKnowledgeInput')[0].value;

          var saveMessage = new gadgets.MiniMessage(__MODULE_ID__);

          saveMessage.createDismissibleMessage("Your expertises were saved");

        }

        function init() {

          osapi.people.getViewer().execute(function(viewerData) {

            if (!viewerData.error) {

              var viewerDiv = document.getElementById('current_user_id');

              viewerDiv.innerHTML = viewerData.displayName;

            };

          });

        }

        gadgets.util.registerOnLoadHandler(init);

      </script>

     

      <style type="text/css">

        label { display: inline-block; width: 100px; }

        select { display: inline-block; width: 100px; }

      </style>

     

      <div id="content">

        <div id="greeting"> Hello <span id="current_user_id"> </span>

        </div>

        <div id="editForm">

                                                                              <br>

          <form action="#">

            <div id="sector">

              <label>sector: </label>

              <select name="sectorInput" size="1">

                <option> sector 1</option>

                <option> sector 2</option>

                <option> sector 3</option>

                <option> sector 4</option>

                <option> sector 5</option>

              </select>

              knowledge: low

              <input type="radio" name="sectorRating" value="0">

              <input type="radio" name="sectorRating" value="1">

              <input type="radio" name="sectorRating" value="2">

              <input type="radio" name="sectorRating" value="3">

              <input type="radio" name="sectorRating" value="4"> high

            </div>

            <br>

            <div id="country">

              <label>country: </label>

              <select name="countryInput" size="1">

                <option> country1</option>

                <option> country2</option>

                <option> country3</option>

                <option> country4</option>

                <option> country5</option>

              </select>

              knowledge: low

              <input type="radio" name="countryRating" value="0">

              <input type="radio" name="countryRating" value="1">

              <input type="radio" name="countryRating" value="2">

              <input type="radio" name="countryRating" value="3">

              <input type="radio" name="countryRating" value="4"> high

            </div>

            <br>

            <div id="project">

              <label>project: </label>

              <input type="text" name="projectInput" size="50">

            </div>

            <br>

            <div id="specialist knowledge">

              <label>specialist knowledge:</label>

              <input type="text" name="specKnowledgeInput" size="50">

            </div>

            <br>

            <br>

            <input type="button" value="Save" onclick="save()"/>

          </form>

                                               </div>

      </div>

    ]]>

  </Content>

</Module>

 

That’s the current status of my first gadget after only a few days of studying and testing. Maybe it can help some of you to reduce fear of contact with Open Social gadgets. I think with basic knowledge of XML, HTML, CSS and JavaScript it is not very difficult to build also more complex gadgets. Further information can be found at http://help.sap.com/download/documentation/sapjam/developer/index.html#opensocial/concepts/intro.html

Join us for a live demonstration of SAP Jam and ask our product expert questions in a live, interactive webcast. In this demo, we’ll explore how to:

 

  • Connect your customers, partners, and employees with information and processes to drive results
  • Improve employee engagement, boost productivity, and lower training costs
  • Accelerate the sales cycle and keep key stakeholders informed of progress and opportunities
  • Deliver a single, secure social collaboration foundation across your business

 

Sign up now to see how you can accelerate business and drive results with SAP Jam.

 

Thursday, February 26, 2015

10 a.m. Pacific

60 minutes

Register now

Watch this video to see how you can use SAP Cloud for Sales to accelerate sales cycles by collaborating with your sales team, internal experts, customers, and partners — all in the context of your accounts and opportunities – with built-in integration to SAP Jam.

 

 

Here’s how SAP Cloud for Sales can give a salesperson the insights he needs to prepare for his day. With a complete view on accounts and opportunities – and the ability to collaborate with the right people on his sales team – he can sell smarter.

 

To get started, he sees a full view into one of his opportunities – from the latest account information to any open service tickets. With native integration to SAP ERP, he no longer has to hunt for back-office information like sales orders or invoices. It’s all there.

 

He can have relevant conversations with the customer – anytime, anywhere – so there are no surprises. He can easily create a customer fact sheet to prepare for a meeting – all with the tap of a button.

 

Next, he looks at all the other opportunities he’s working on for the account. He gets a complete list and can drill down to get the specifics. He can decide what opportunities get published to the sales forecast and decides to add this one.

 

He also needs to prepare for his meeting. A decision-maker named Paula will be there with her team. He sees a list of people who Paula has worked with before and recognizes Eric in logistics. He decides to get Eric in the loop and add him to the sales team. With SAP HANA, he can use predictive analytics to find top deal influencers and connect with them.

 

Now that he’s assembled his sales team, he sets up a deal room where they can collaborate and close the opportunity. With integration between SAP Jam and SAP Cloud for Sales, he can invite anyone to his team – even those outside sales like legal and logistics.

 

To his deal room, he adds all the relevant information like opportunity details, customer-related documents, RFPs, and presentations. He’s able to collaborate and build the best sales strategy by creating polls and discussions. He can involve other teams selling into the same industry – or against similar competitors – so they can learn from each other.

 

Based on the team’s input, he can choose the best products and solutions to propose to the customer. He can also get immediate feedback from his manager, allowing him to work on the proposal immediately.

 

He’s now ready to set up a meeting with the customer, so he creates create an appointment. He gets an email from his customer confirming that they’re ready to meet. With integration into productivity apps like Microsoft Outlook, Google Gmail, and Lotus Notes, SAP Cloud for Sales allows him to link all email conversations to specific opportunities, or even create a new opportunity – and all relevant conversations stay in one place.

 

Follow SAP Social Software on Twitter: @SAPSocial

Actions

Filter Blog

By author:
By date:
By tag: