S S symmetry

Article Framework for a Symmetric Integration Approach

Mihaela Muntean 1,* , Claudiu Brânda¸s 1 and Tanita Cîrstea 2 1 Business Information Systems Department, Faculty of Economics and Business Administration, West University of Timisoara, 30023 Timisoara, Romania; [email protected] 2 SAP Romania, 300011 Timisoara, Romania; [email protected] * Correspondence: [email protected]; Tel.: +40-742-089-058

 Received: 26 December 2018; Accepted: 5 February 2019; Published: 14 February 2019 

Abstract: An Application-to-Application integration framework in the cloud environment is proposed. The methodological demarche is developed using a data symmetry approach. Implementation aspects of integration considered the (OData) service as an integrator. An important issue in the cloud environment is to integrate and ensure the quality of transferred and processed data. An efficient way of ensuring the completeness and integrity of data transferred between different applications and systems is the symmetry of data integration. With these considerations, the integration of SAP Hybris Cloud for Customer with S/4 HANA Cloud was implemented.

Keywords: application integration; data integration; data symmetry; Open Data Protocol (OData) service

1. Introduction Ensuring the quality of data integration in cloud-based hybrid systems and applications is an important issue both in business and in data science. Integration frameworks are focused on data integration or application integration. Data integration implies the transfer, replication, and transformation of data from one place to another (from one application to another)—ignoring application or business logic. Application integration is defined as linking systems together at the application/business logic level. According to Tibbetts (2011) “neither method of integration is superior or inferior to the other—it simply depends on the need” [1]. Application integration in the business environment has grounded the widely used Enterprise Application Integration (EAI) paradigm, which is sustained by dedicated systems, e.g., Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), Supply Chain Management (SCM) systems, or other enterprise-integrated applications. However, various integration projects in organizations nowadays employ both types of integration frameworks. According to Linthicum (1999), EAI conducts the strategic utilization of company data and technology for greater efficiency and profit [2]. Four types of integration are identified: Data-level, application interface-level, method-level, and user interface-level—the last three together are supported by the business model level [2]. The EAI architecture has been transposed into the cloud and is supported by cloud computing infrastructure and services [3,4]. Cloud applications integration is facilitated by various classes of Application Programming Interfaces (), predefined or developed, such as application, data service, or data set APIs. Cloud services provide access to server infrastructure and resources that are managed by a provider, e.g., Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). According to Deloitte practitioners [5], to integrate cloud applications, the following integration approaches are applicable: Cloud-to-Cloud; Cloud–Integrator–Cloud; and Cloud–Cloud–Cloud (Cloud-Cubed) integration.

Symmetry 2019, 11, 224; doi:10.3390/sym11020224 www.mdpi.com/journal/symmetry Symmetry 2019, 11, 224 2 of 10

Symmetry 2018, 10, x FOR PEER REVIEW 2 of 10 A primary issue in integration processes is the level of data quality. Corrales (2018) synthesized A primary issue in integration processes is the level of data quality. Corrales (2018) synthesized the diverse approaches regarding data quality issues [6]. An integration approach based on symmetry the diverse approaches regarding data quality issues [6]. An integration approach based on ensures the completeness and integrity of data transferred between different applications and systems. symmetry ensures the completeness and integrity of data transferred between different applications Weyl (1983) presented the importance of symmetry in science and other domains [7]. Murtagh (2009) and systems. Weyl (1983) presented the importance of symmetry in science and other domains [7]. underlined the role of symmetry in Data Analysis and Data Mining [8]. In the context of the widespread Murtagh (2009) underlined the role of symmetry in Data Analysis and Data Mining [8]. In the context use of cloud-based hybrid applications and the importance of symmetry in the quality of the data of the widespread use of cloud-based hybrid applications and the importance of symmetry in the integration process, we considered it necessary to develop a framework for the symmetric integration quality of the data integration process, we considered it necessary to develop a framework for the of applications. symmetric integration of applications. 2. Framework2. Framework for fora S aymmetric Symmetric Integration Integration Approach Approach TheThe research research problem problem of our of ourstudy study is the is development the development and implementation and implementation of a framework of a framework for thefor symmetric the symmetric integration integration of applications of applications and systems and systems in cloud in environments cloud environments in order in to order ensure to ensurethe completenessthe completeness and integrity and integrity of data of in data the in integration the integration process process.. Our Our research research is quantitative is quantitative and and experimental.experimental. For Fordevelopment development and validation and validation,, we use wed usedSAP Hybris SAP Hybris Cloud Cloud for Customer for Customer (C4C), (C4C),S/4 HANAS/4 HANACloud (S/4) Cloud, and (S/4), Open and Data Open Protocol Data Protocol (OData) (OData) service. service. VarVariousious approaches approaches reference reference applicationapplication integration integration (AI) (AI) topics topics [1–3 ]. [1 Relevant−3]. Relevant for our for demarche our demarcheis the following is the following consideration considerati regardingon regarding AI, which AI, iswhich defined is defin as a processed as a ofprocess “keeping of “keeping redundant redundantcopies of copies data (in of independentlydata (in independently designed designed applications) applications) consistent, consistent, or enabling or end-users enabling toend access-users data to accessand functionality data and functionality from independently from independently designed applications designed applications on a single user on a interface” single user [9 ].interface In Figure” 1, [9].two In Figure independently 1, two independently designed applications designed application are involveds are in involved an integration in an integration process. Data process. are retrieved Data arefrom retrieved Application from Application 1 and stored 1 and in Application stored in Application 2 in a corresponding 2 in a corresponding format. Making format. an Making analogy an with analogya symmetry with a symmetry model using model (d) using as its (d) symmetry as its symmetry axis, the axis “copy, the “ ofcopy data” of data object” object is symmetric is symmetric to the to the“data “data source” source object.” object.

FigureFigure 1. Application 1. Application integration integration..

In anIn anEAI EAI framework framework,, ERP ERP systems systems are areput put together together with with CRM CRM systems, systems, SCM SCM systems, systems, or other or other EnterpriseEnterprise Applications Applications (EA) (EA) systems. systems. The The integration integration approach approach presented presented in in Figure Figure 11 isis applicable to to thethe EAI EAI context context and and is is valid valid for for both data structures and Business O Objectsbjects (BO) (BO) [ [10].]. A A collection of of technologies technologies and and services services support support the the integration integration of the of systems, the systems, building building a “middleware a “midd integrationleware integrationframework” framework [10]. ” [10]. TheThe increasing increasing use useof cloud of cloud technologies technologies creates creates integration integration challenges challenges for many for many companies. companies. A scenarioA scenario for integrating for integrating SAP SAP Hybris Hybris Cloud Cloud for forCustomer Customer (C4C) (C4C) and and S/4HANA S/4HANA Cloud Cloud (S/4) (S/4) is the isthe subjectsubject of this of this article article (Figure (Figure 2).2 ).

Symmetry 2019, 11, 224 3 of 10 Symmetry 2018, 10, x FOR PEER REVIEW 3 of 10

Figure 2. Integration framework for SAP Hybris CloudCloud forfor CustomerCustomer (C4C)–S/4HANA(C4C)–S/4HANA Cloud (S/4)(S/4) [ [77]]..

Best practices in in integration integration methods methods point point out out three three alternatives: alternatives: Application Application-to-X-to-X users users (A2X) (A2X),, using a SOAP SOAP-based-based web service in synchronous execution;execution; Application-to-ApplicationApplication-to-Application (A2A), (A2A) using, using a aSOAP-based SOAP-based web web service service in in asynchronous asynchronous execution;execution; andand OpenOpen DataData Protocol using a REST REST-based-based web service inin synchronoussynchronous executionexecution [ 11[11––1313].]. The The OData OData service, service, metaphorically metaphorically named named the the “SQL “SQL of ofthe the web”, web” allows, allows the the creation creation and and consumption consumption of of queryable queryableand and interoperableinteroperable RESTfulRESTful APIs in a simplesimple andand standard standard way. way. The The service service enables enables the client, the e.g.,client, Application e.g., Application 2, to publish 2, to and publish manipulate and manipulatethe resource the identified resource by identified URIs and bydefined URIs in and a data defined model in using a data simple model HTTP using messages. simple HTTP In an messages.OData-based In an approach, OData-based Application approach, 1 is Application the OData service 1 is the producer OData service and will producer expose itsand service will expose along itswith service metadata along that with contain metadata the semantics that contain for theconsumption. semantics for The consumption. OData service The exploits OData common service exploitsformats likecommon XML andformats JSON like for XML communication. and JSON for Application communication. 2 understands Application the OData 2 understands service using the ODatageneric service tools and using can generic combine tools information and can combine from multiple information data sources. from multiple data sources. TThehe scenario for integrating C4C with S/4 includes includes the the actio actionsns seen seen in in Table Table 11,, onon bothboth thethe ODataOData producer (C4C application) and consumer (S/4 application) application) side sides.s.

Table 1.1. C4C–S/4C4C–S/4 i integrationntegration activities activities..

ApplicationApplication Action Action ID ID ActionAction Result Result IdenIdentifyingtifying thethe BusinessBusiness Object Object (BO), (BO), that will C4CC4C A1 A1 representthat will represent the data the data source source for for the ODataBO (dataBO source) (data source) servicethe OData service Creating the OData service for C4C A2 OData service C4C A2 Creadingreating thethe BO OData service for reading the BO OData service C4C A3 Activating the OData service URL C4C A3 Activating the OData service URL C4C A4 Testing the OData service Displaying OData service answer S/4 A5 Consuming the OData service BO in S/4 (symmetricDisplaying copy ofOData BO) C4C A4 Testing the OData service service answer BO in S/4 (symmetric S/4Atime reportA5 from the C4CConsuming system the is transferred OData service and stored in the S/4 system. A Time Report BO is a collection of time entries, which can be defined for a date or a date range.copy Employees of BO) can record time for different activities/tasks in which they are involved, e.g., work, travel, administration, vacationA time [14 ,r15eport]. An from employee the C4C can system also have is transferred many time and reports. stored Time in the recording S/4 system. enables A Time managers Report to BOkeep is tracka collection of which of employees time entries, are doingwhich day-to-day can be defined work, for which a date in turn or a helps date torange. improve Employees productivity can recordand customer time for satisfaction,different activities/tasks reduce cost, in and which enable they employees are involved to, bee.g more., work, productive travel, administration, by making it vacationeasier for [14 them,15]. to An record employee their time.can also have many time reports. Time recording enables managers to keep track of which employees are doing day-to-day work, which in turn helps to improve productivity and customer satisfaction, reduce cost, and enable employees to be more productive by making it easier for them to record their time. 3. Implementation Aspects of SAP Hybris Cloud for Customer and S/4 HANA Cloud Integration

Symmetry 2019, 11, 224 4 of 10

3. Implementation Aspects of SAP Hybris Cloud for Customer and S/4 HANA Cloud Integration

Action A1. Identifying the Business Object that Will Represent the Data Source for the OData Service C4C software maintains the time reports for the employees. Operations like creating, updating, and deleting time reports; retrieving time entries; retrieving employee data; and grouping time entries for an employee for a specified time are possible. Time reports are defined based on a standard Time Report BO [14,15]. Therefore, they are instances of the BO. The report header contains information, e.g., the Universally Unique Identifier (UUID) of the time report, the reference to the standard BO, and the employee’s user ID. A time report can record time for a certain ticket or independent of any ticket. Solving a ticket implies the completion of different tasks by the employee to whom it was assigned. The time spent performing the necessary tasks is recorded in time entries. A time entry has the following attributes: Time type (work, travel, administration, vacation, etc.), ticket ID, start time, end time, break start, break end, duration, and time zone (Table2). After creating the time report as an instance of the Time Report BO, it has to be approved by the reporting line manager. Once the time is recorded, it has to be billed. Ticket IDs are integrated with S/4 for billing processes. During the proposed integration process, each time entry is copied into the S/4 system and becomes a time item of the ticket for billing processes.

Table 2. Details of a time report: 2018/CW23 example.

Time Type Date Ticket ID Start Time End Time Break Start Break End Duration Work 06/04/2018 6227-T1028 9:00 AM 5:30 PM 12:00 AM 12:30 AM 8 h Work 06/05/2018 6227-T1028 9:00 AM 5:30 PM 1:00 PM 1:30 PM 8 h Work 06/06/2018 6227-T1028 9:00 AM 5:30 PM 12:30 AM 1:00 PM 8 h Work 06/07/2018 6227-T1028 9:00 AM 5:30 PM 12:30 AM 1:00 PM 8 h Work 06/08/2018 6227-T1028 9:00 AM 5:30 PM 12:00 AM 12:30 AM 8 h

A time report covering week 23, from 4 June 2018 to 10 June 2018, for employee ‘tanita business’ created in C4C can be seen in Table2 and is transferred into the S/4 system for further processing. The replication of the 2018/CW23 time report into S/4 is an example of data symmetry within the integration approach. Action A2. Creating the OData Service for Reading the BO The OData service contains the metadata of the entities exposed by the service, the relationships between these entities, and system and custom query options for retrieving data [11]. The service can be created in an assisted way. The appropriate selection can then be made in the OData editor window according to requirements. Action A3. Activating the OData Service After creating the OData service for time report 2018/CW23, the service is activated and its URL is accessible. The metadata structure can be checked by using the service URI [14]. Action A4. Testing the OData Service The created OData service is tested through HTTP requests launched on the C4C test console (Figure3). The service response can be viewed in different formats, e.g., Form, XML, or JSON [15]. Symmetry 2018, 10, x FOR PEER REVIEW 5 of 10 Symmetry 2019, 11, 224 5 of 10

Entry Details Test Request Method: GET Response Data XML JSON Headers ID 22 ETag 2018-06-12T21:33:19… ObjectID 00163E10F3201EE89… EmployeeUUID 00163E27-EAAD-1EE… StartDate 2018-06-04T00:00:00 Status 1 TotalDuration PT8H30M ReportName 2018/CW23 EndDate 2018-06-08T00:00:00

FigureFigure 3.3. TestingTestingthe theOData OData service: service:GET GETmethod. method.

SecuritySecurity issuesissues areare alsoalso testedtested andand serviceservice performance,performance, e.g., e.g., response response time, time, is is analyzed. analyzed. ActionAction A5.A5. ConsumingConsuming thethe ODataOData ServiceService Several tasks are necessary to implement action A5, as seen in Table 3. In order to respect the Several tasks are necessary to implement action A5, as seen in Table3. In order to respect the application integration framework presented in Figure 1, task T3 was proposed. It was designed application integration framework presented in Figure1, task T3 was proposed. It was designed based based on several sub-tasks introduced in Table 3 and is implemented through ABAP programming. on several sub-tasks introduced in Table3 and is implemented through ABAP programming.

Table 3. Activity A5. Tasks for consuming the OData service. Table 3. Activity A5. Tasks for consuming the OData service. Application Task ID Task Application Task ID Task Establishing endpoint for the time report into the S/4 system (fields in Establishing endpoint for the time report into the S/4 system (fields in S/4: S/4S/4 T1 timereport-id,S/4: timereport-id, timereport-reportname, timereport-reportname timereport-startdate,, timereport-startdate, timereport-enddate,timereport-enddate, timereport-totalduration) timereport-totalduration) Creating communication system, defining communication scenario, and S/4 T2 Creating communication system, defining communication scenario, S/4 T2 establishing communication arrangement Effectiveand establishing consuming commu of the ODatanication service: arrangement - EffectiveT31: Check consuming if outbound of the service OData exists service: in the communication scenario; - - T32:T31: Create Check HTTP if clientoutbound to access service the outbound exists service;in the communication - T33: Create the service request by specifying the request method scenario; S/4 T3 and header; - - T34:T32: Send Create the HTTP request client to C4C to and access get a the response; outbound service; - - T35:T33: Parse Create the the response; service request by specifying the request method - T36: Map response fields coming from C4C to endpoint fields in S/4; and header; S/4 T3 - T37: Display the time report in S/4. - T34: Send the request to C4C and get a response; - T35: Parse the response; A communication system was created in S/4 HANA [14,16] to integrate SAP Hybris Cloud for Customer and S/4 HANA- Cloud,T36: Map a process response for fields “keeping coming copies from ofC4C data to (inendpoint independently fields in designed applications) consistent”,S/4; as mentioned at the beginning of Section3. In the communication scenario, the OData service URL- T37: was Display specified, the astime seen report in Figure in S/4.4 . Further integration aspects, e.g., authentication methods, were established by the communication arrangement [16]. A communication system was created in S/4 HANA [14,16] to integrate SAP Hybris Cloud for Customer and S/4 HANA Cloud, a process for “keeping copies of data (in independently designed applications) consistent”, as mentioned at the beginning of Section 3. In the communication scenario, the OData service URL was specified, as seen in Figure 4. Further integration aspects, e.g., authentication methods, were established by the communication arrangement [16].

Symmetry 2019, 11, 224 6 of 10 Symmetry 2018, 10, x FOR PEER REVIEW 6 of 11 Symmetry 2018, 10, x FOR PEER REVIEW 6 of 10 Symmetry 2018, 10, x FOR PEER REVIEW 6 of 11 Symmetry 2018, 10, x FOR PEER REVIEW 6 of 11 Symmetry 2018, 10, x FOR PEER REVIEW 6 of 11

Figure 4. Communication scenario Figure 4. Communication scenario Figure 4. Communication scenario Implementation aspects,Figure includingFigure 4. Communication 4 coding,. Communication of the scenario. effective scenario consuming of the OData service (activityImplementation A5, task T3) proposed aspects, includingby theFigure authors 4 coding,. Communication are ofpresented the effective scenario in Table consumings 4 and 5. of the OData service Implementation aspects, including coding, of the effective consuming of the OData service After(activity receivingImplementation A5, task the T3) response proposed aspects, from including by the authors OData coding, serviceare ofpresented the (task effective T34),in Table in consumings order 4 andto 5. obtain of the ODataa “symmetric” service (activity A5, task T3) proposed by the authors are presented in Tables 4 and 5. copy of(activity the timeImplementation A5 report, task T3) in the proposed aspects, S/4Table system, including4.by Activity the theauthors A5 coding, tasks, task are T35–T37 T3. ofpresented Implementation the effective were in Table proposed consumingaspectss 4 and. and 5. of developed. the OData service Implementation(activity A5, task aspects, T3) proposedTable including 4.by Activity the coding, authors A5, task ofare T3. thepresented Implementation effective in Table consuming aspectss 4 and. 5. of the OData service Task TableTable 4. Activity 4. Activity A5, tA5ask, tT3.ask ImplementationT3. Implementation aspects aspects. . (activityTask A5, task T3)Description proposed by the authors are presented in TablesCode4 and5. ID Description Table 4. Activity A5, task T3. ImplementationCode aspects . Task TaskID DescriptionDescription CodeCode ID TaskID Table 4. Activity A5, task T3. Implementation aspects. CheckDescription if outbound Code ID Check if outbound Task IDCheckservice if Description outbound exists in the Code T31 serviceCheck ifexists outbound in the T31service communicationexists in the T31 serviceCheckcommunication ifexists outbound in the T31communication Checkscenario if outbound (Figure 4). servicescenarioservicecommunication exists exists (Figure in thein the4). T31 T31scenario (Figure 4). communication scenario scenariocommunication (Figure 4). Create HTTP(Figure client4). Createscenario HTTP (Figure client 4). T32 to access the T32 Createto access HTTP the client T32outbound Createto service. access HTTP the client Createoutbound HTTP clientservice. to SimilarT32 to theaccess Createtesting the HTTP outboundapproach client of the Odata service (Action A4), the GET method and the JSON T32 outboundto access service. the T32 toservice. access the Similar tooutbound the testingformat service. approach for viewing of the the Odata answer service were (Action chosen A4), (Figure the GET 3). method and the JSON Similar tooutbound the testing service.format approach for viewingof the Odata the answer service were(Action chosen A4), (Figurethe GET 3). method and the JSON Similar to the testing approach of the Odata service (Action A4), the GET method and the JSON format for viewing the Similar to the testingformat approach for ofviewing the Odata the answerservice were(Action chosen A4), (Figurethe GET 3). method and the JSON Create the service answer were chosen (Figure3). Similar to the testingformat approach for viewingof the Odata the answer service were(Action chosen A4), (Figurethe GET 3). method and the JSON request by format for viewing the answer were chosen (Figure 3). T33 specifyingCreate thethe service Create the service request methodrequest and by Createrequest the service by T33 Createheader.specifying the service request the T33 T33 by specifyingrequestCreatespecifyingrequest method the the service requestby the and T33 methodrequestspecifyingrequestheader. and method header. by the and T33 requestspecifyingheader. method the and requestheader. method and

Send the requestheader. to

T34 C4C and get a response. Send the request to Send the request to C4C T34 T34 SendC4C the and request get a to and get a response. T34 SendC4Cresponse. the and request get a to Send the request to TheT34 OData serviceC4Cresponse. and response get a in JSON format, as seen in Figure 5, is the subject of a parsing T34 C4C and get a process (task T35) inresponse. order to identify the data that are copied into the symmetric data fields (task response. T36) of the S/4 system. The parsing algorithm describes a direct parse of the JSON string and transforms the data into an internal table of key-value pairs (Table 5). The implementation is based The OData service response in JSON format, as seen in Figure 5, is the subject of a parsing on an iterativeprocessThe (task WHILE OData T35) service-ENDWHILE in order response to identify approach. in JSON the data format that, asare seen copied in Figureinto the 5 ,symmetric is the subject data of fields a parsing (task processThe (task OData T35) service in order response to identify in JSON the data format that, asare seen copied in Figure into the 5, symmetricis the subject data of fields a parsing (task process The (task OData T35) service in order response to identify in JSON the data format that, asare seen copied in Figureinto the 5 ,symmetric is the subject data of fields a parsing (task process (task T35) in order to identify the data that are copied into the symmetric data fields (task

Symmetry 2018, 10, x FOR PEER REVIEW 8 of 11 Symmetry 2018, 10, x FOR PEER REVIEW 8 of 11 SymmetrySymmetry2019 2018, 11,, 22410, x FOR PEER REVIEW 7 of8 10of 11 Symmetry 2018, 10, x FOR PEERTable REVIEW 5. Activity A5, tasks T35−T37. Implementation aspects 8 of 11 Table 5. Activity A5 , tasks T35−T37. Implementation aspects Task/Description Code TableTable 5. Activity 5. Activity A5, A5 tasks, task T35s T35−T37.−T37. Implementation Implementation aspects. aspects Task/Description Code Task/Description Code Task/Description Code

T35: Parse the response T35: Parse the response T35: Parse the response Transformations of the response string T35: Parse the response storedTransformations in lv_body: of the response string Transformations of the response string Transformations stored in lv_body of: the response string stored stored in lv_body: in - lv_body All occurrences: of substring '“' are - All occurrences of substring '“' are - eliminated;- AllAll occurrences of of substring substring ‘“’ '“' are -eliminated; All occurrences of substring '“' are eliminated;are eliminated; eliminated; - - IterativelyIteratively,, each “line”“line” is is identified identified (the

(the- Iterativelydifferent different “lines”, each“lines are“”line are separated” separatedis identified by by - Iteratively, each “line” is identified comma(thecommas) differents) and and stored“lines stored” in are inlv_pair lv_pair separated; the; the next bynext (the different “lines” are separated by “commalines“lines”” remains) and remain stored in lv_body in lv_body in lv_pair; ; ; the next commas) and stored in lv_pair; the next - -“ linesInIn lv_pair”lv_pair remain,, we in we have lv_body havelv_key; lv_key(ID, (ID, “lines ReportName” remain ,inStartDate lv_body;, EndDate , ReportName- In lv_pair, , weStartDate have, lv_keyEndDate (ID,, - InTotalDuration lv_pair, we) and havelv_value lv_key; they are(ID, TotalDurationReportName, ) andStartDate lv_value, ; theyEndDate are, ReportNameseparated, byStartDate substring, ‘:’; EndDate, separatedTotalDuration by substring) and lv_value ':'; ; they are - All occurrences of substring ‘{’ and ‘}’ TotalDuration-separated All occurrences by) substring and of lv_value substring ':'; ; they '{' and are '} ' separatedare eliminated; by substring ':'; separatedare- All eliminated; occurrences by substring of substring ':'; '{' and '}' - - AllFor occurrences each lv_key , of the substringlv_value is '{' extracted and '}' -are All eliminated; occurrences of substring '{' and '}' -areForand eliminated; storedeach intolv_key a , the lv_value is are- For eliminated; each lv_key, the lv_value is extracted- Forcorresponding each andlv_key variable.,stored the lv_value into is a - For each lv_key, the lv_value is correspondingextracted and variable. stored into a extracted and stored into a corresponding variable. corresponding variable.

T36:T36: Map Map response response fields fields coming coming from from C4C to endpointT36: C4CMap fields toresponse endpoint in S/4 fields fields coming in S/4 from T36: Map response fields coming from C4C to endpoint fields in S/4 C4C to endpoint fields in S/4

T37: DisplayT37: Display the time the reporttime report in S/4 in HANA S/4 system T37: DisplayHANA the timesystem report in S/4 T37: DisplayHANA the time system report in S/4 HANA system HANA system TheThe OData time servicereport can response be displayed, in JSON and format, is involved as seen inin Figurefurther5, processing is the subject according of a parsing to the process business (taskflows. T35)The in time order report to identify can be thedisplayed, data that and are is copied involved into in the further symmetric processing data according fields (task to T36) the business of the The time report can be displayed, and is involved in further processing according to the business S/4flows. system.In conclusion, The parsing the algorithmintegration describes approach a was direct conducted parse of in the terms JSON of string a data and symmetry transforms approach the flows. dataas intoseenIn aninconclusion, internalFigure 1, table andthe integration was of key-value implemented approach pairs by (Table wasOData5 conducted). Theservice implementation as in seen terms in of Figure a is data based 2, symmetry a parsing on an iterative process approach of In conclusion, the integration approach was conducted in terms of a data symmetry approach WHILE-ENDWHILEtheas seen service in Figure response, 1, approach. and and was the implementedmapping of the by response OData service fields coming as seen fromin Figure SAP C4C2, a parsing to endpoint process fields of as seen in Figure 1, and was implemented by OData service as seen in Figure 2, a parsing process of inthe TheS/4 service (Table response response,s 1, string3 and and 5 is, storedFigure the mapping in6).lv_body of theand response is applied fields to the coming following from transformations.SAP C4C to endpoint fields the service response, and the mapping of the response fields coming from SAP C4C to endpoint fields in TheS/4 (Table times report 1, 3 and can 5, beFigure displayed, 6). and is involved in further processing according to the in S/4 (Tables 1, 3 and 5, Figure 6). business4. Discussion flows. s and Conclusions 4. Discussions and Conclusions 4. DiscussionInAll conclusion, formss and of the C cloud integrationonclusions integration, approach e.g. was, cloud conducted-to-cloud, in terms cloud of-to a-on data-premises symmetry integration, approach asor a seencombination inAll Figure forms1 , of and both, of was cloud employ implemented integration, data and by e.g.ODataapplication, cloud service- to integration-cloud, as seen cloud in in Figure order-to-on2 to,-premises a address parsing processdifferent integration, of business the or a All forms of cloud integration, e.g., cloud-to-cloud, cloud-to-on-premises integration, or a servicecomponents.combination response, of and both, the employ mapping data of andthe response application fields integration coming from in order SAP to C4C address to endpoint different fields business in combination of both, employ data and application integration in order to address different business S/4components. (Tables1,3 and 5, Figure6). components.

Symmetry 2019, 11, 224 8 of 10

Symmetry 2018, 10, x FOR PEER REVIEW 7 of 10

Symmetry 2018, 10, x FOR PEER REVIEW 8 of 10

T37: Display the time report in S/4

HANA system

ODataThe servicetime report can be displayed, and is involved in further processing according to the business flows.response In conclusion, the integration approach was conducted in terms of a data symmetry approach as seen in Figure 1, and was implemented by OData service as seen in Figure 2, a parsing process of the service response, and the mapping of the response fields coming from SAP C4C to endpoint fields in S/4 (Tables 1, 3 and 5, Figure 6).

4. Discussions and Conclusions All forms of cloud integration, e.g., cloud-to-cloud, cloud-to-on-premises integration, or a

combination of both, employ data and application integration in order to address different business components. FigureFigure 5.5. ODataOData service response in in JSON JSON format format..

The response string is stored in lv_body and is applied to the following transformations.

Table 5. Activity A5, tasks T35−T37. Implementation aspects

Task/Description Code

T35: Parse the response

Transformations of the response string stored in lv_body:

- All occurrences of substring '“' are eliminated;

- Iteratively, each “line” is identified (the different “lines” are separated by commas) and stored in lv_pair; the next “lines” remain in lv_body; - In lv_pair, we have lv_key (ID, ReportName, StartDate, EndDate, TotalDuration) and lv_value; they are separated by substring ':'; - All occurrences of substring '{' and '}' are eliminated; - For each lv_key, the lv_value is extracted and stored into a corresponding variable.

T36: Map response fields coming from C4C to endpoint fields in S/4 Figure 6. Framework for a symmetric integration approach. Figure 6. Framework for a symmetric integration approach.

In all cases, the integration framework includes practices, tools, and technologies used by an enterprise to connect applications, systems, and data. The approach can be developed with or without a cloud integration platform.

Symmetry 2019, 11, 224 9 of 10

4. Discussions and Conclusions All forms of cloud integration, e.g., cloud-to-cloud, cloud-to-on-premises integration, or a combination of both, employ data and application integration in order to address different business components. In all cases, the integration framework includes practices, tools, and technologies used by an enterprise to connect applications, systems, and data. The approach can be developed with or without a cloud integration platform. Business-to-Business (B2B) enterprises use an integration platform as a service (iPaaS) in order to develop integration projects. The two systems C4C and S/4, which are the subject of our investigation, can be integrated via SAP Cloud Platform Integration (SAP CPI). It connects cloud applications with other SAP and non-SAP cloud and on-premises applications. Different scenarios can be developed, e.g., Application-to-Application (A2A) integration, or customized access to the SAP CPI with public OData APIs [17]. As an alternative, we propose an approach without an integration platform that can be applied to any A2A integration (Figure6). A methodological framework for the integration of two independent applications is proposed. The scenario presented in Figure1 indicates a symmetric integration approach: Data is retrieved from one application and stored (copied) in the other application. As mentioned in Section2, the “copy of data” object is symmetric to the “data source” object. One application is an OData service producer, the other a service consumer (Figure6). For the consumption of the OData service (activity A5), three tasks are necessary (T1–T3). Furthermore, task T3 was designed as a sequence of seven sub-tasks (Figure6). After sending the request to Application 1 and getting the service response (sub-task T34), parsing the response (sub-task T35) followed by mapping the response fields to the endpoint fields in Application 2 (T35) is essential to obtain a symmetric integration approach. Mainly, based on the OData service [18], the integration framework implies the following phases: A1—Identifying the Business Object, which will represent the data source for the OData service; A2—Creating the OData service for reading the BO; A3—Activating the OData service; A4—Testing the OData service; A5—Consuming the OData service. Today’s business environment requires application integration in order to support all kinds of business processes and value chains. The business data are processed through all these systems. This has to be done “in the best possible way and in the least possible time to come up with the best possible outcome” [19]. Therefore, all data that has to be transferred from one system to another is identified. “The OData ecosystem” is continually growing, and diverse OData producers and consumers might be the pillars of the integration framework [20]. The symmetry of data has a decisive impact on the quality of the integration processes.

Author Contributions: The main contributions to this article were: M.M.—conceptualization, methodology, writing and validation; C.B.—conceptualization, investigation and validation; T.C.—investigation and writing. Funding: This research received no external funding. Conflicts of Interest: The authors declare no conflict of interest.

References

1. Tibbetts, H. Integration on the Edge: Data Explosion & Next-Generation Integration. 2011. Available online: http://www.ebizq.net/blogs/integrationedge/2011/12/application-integration-in-the- cloud---finally-here.php (accessed on 2 August 2018). 2. Linthicum, D.S. Enterprise Application Integration; Addison-Wesley Professional: Boston, MA, USA, 1999; ISBN 0201615835. 3. Thoopurani, G. Rethinking B2B Business: Enterprise Application Integration (EAI) in the Cloud. 2014. Available online: https://www.ibm.com/developerworks/cloud/library/cl-softlayer-sterling-trs/ cl-softlayer-sterling-trs-.pdf (accessed on 3 August 2018). Symmetry 2019, 11, 224 10 of 10

4. Wang, S.H.; Chen, D. A cloud framework for Enterprise Application Integration on SOA. In Proceedings of the International Conference on Software Intelligence Technologies and Applications & International Conference on Frontiers of Internet of Things, Hsinchu, Taiwan, 4–6 December 2014. [CrossRef] 5. Deloitte Consulting LLP. 3 Ways to Integrate Cloud Applications. 2013. Available online: https://deloitte. wsj.com/cio/2013/04/16/3-ways-to-integrate-cloud-apps/ (accessed on 15 July 2018). 6. Corrales, D.C.; Corrales, J.C.; Ledezma, A. How to Address the Data Quality Issues in Regression Models: A Guided Process for Data Cleaning. Symmetry 2018, 10, 99. [CrossRef] 7. Weyl, H. Symmetry; Princeton University Press: Princeton, NJ, USA, 1983. 8. Murtagh, F. Symmetry in data mining and analysis: A unifying view based on hierarchy. Proc. Steklov Inst. Math. 2009, 265, 177–198. [CrossRef] 9. Gartner. Application Integration. 2018. Available online: https://www.gartner.com/it-glossary/application- integration (accessed on 9 May 2018). 10. Holland, K. An Introduction to Service Integration and Management and ITIL. 2015. Available online: https: //www.axelos.com/case-studies-and-white-papers/introduction-to-service-integration-management (accessed on 20 November 2018). 11. Ciuclaru, H. SAP Open Data Protocol. Available online: http://www.saponline.ro/sap-open-data-protocol/ (accessed on 23 November 2018). 12. Wang, J. OData Service Backend Implementation in C4C, CRM and S4Hana. 2017. Available online: https:// blogs.sap.com/2017/08/07/odata-service-backend-implementation-in-c4c-crm-and-s4-hana/ (accessed on 20 April 2018). 13. Chua, E. Comparing C4C Integration Methods (A2A, A2X, ODATA) for High Volume Scenarious. 2016. Available online: https://blogs.sap.com/2016/07/14/comparing-c4c-integration-methods-a2a-a2x-odata- for-high-volume-scenarios/ (accessed on 13 May 2018). 14. TutorialsPoint. SAP C4C Tutorial. Available online: https://www.tutorialspoint.com/sap_c4c/index.htm (accessed on 30 April 2018). 15. SAP. SAP Cloud for Customer Administration Guide (Public Document). 2015. Available online: https: //vdocuments.mx/sap-c4c-admin-guide-2015-05. (accessed on 30 April 2018). 16. TutorialsPoint. SAP C4C. Available online: https://www.tutorialspoint.com/sap_c4c/sap_c4c_tutorial.pdf (accessed on 17 June 2018). 17. SAP SE. SAP Cloud Platform Integration Onboarding Guide. 2018. Available online: https:// help.sap.com/doc/fc3b7258441440f189cbaa050452780e/Cloud/en-US/onboarding_pdf.pdf (accessed on 20 December 2018). 18. OASIS Standards. Available online: https://www.oasis-open.org/standards#odatav4.0 (accessed on 24 January 2018). 19. Integrating Business Applications. Available online: https://www.appseconnect.com/integrating-business- applications-5-key-points-to-consider/ (accessed on 20 January 2019). 20. Pizzo, M.; Handl, R.; Zurmuehl, M. “OData Version 4.0 Part 1: Protocol” OASIS Standard. Available online: http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1- protocol.pdf (accessed on 10 December 2017).

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).