Saturday, December 7, 2013

SAP PI interview questions refresh

                                                                  om

1)About resume projects: Team size, Landscape explanation
2) Technical questions,PI version and service patch
3) Use cases questions:

Project types
a) Implementation b) Enhancement projects  c) support projects & ticketing tools(remedy(incident management. BP,Walmart are clients),hpqc (teva client),IBM clear quest(IBM),jira(in SAP), HP PPM and CA(HanesBane I) etc)  d)Migration projects (tools:, soap UI tool, winMerge(compare files))


Documentation: Functional specifications/Requirement document -> Technical specification/software development specification,Mapping document,UTP(test results), shared point updates,

Technical interview question:

1)SAP(ECC)----> SAP PI (dual/single stack) ----->FILE,JMS,JDBC,HTTP,SOAP,RFC,IDOC,PROXY
SAP side
2)tcodes( SM59,SM58,sproxy,sxmb_admin,we20,we21,sale,we05,we02,we19<->BD87,we60,....)
3)settings required idoc,proxies,rfc for sender and receiver, difference of using these ?
4)idoc status codes(idoc interfaces), ~ Activating ECH(error and conflict handling) for proxy ~ soap
5)proxy debugging and testing(sproxy->select service interface ,tools->test)

SAP PI

1)Transport mechanisms
CTS+
The developer has to choose any one of these transport requests (in general there will be more) by logging into CTS+ browser

http://:/sap/bc/webdynpro/sap/cts_browser?sap-language=EN&SYSID=&OWNER=&SELECT_REQUEST_MODE=X
by using this create new request, (select exist transport number,preselect request, add objects of esr,id sections), we generally create one create for ESR objects and one request for configuration objects.
export objects using export options to this particular transport request and release the transport, once your are confirm.
File transports: using *.tpz format, we can save files

SAP PI 7.3
ESR objects:
1)objects( dt,mt, si, external definition)
2)mapping objects( message mapping, operation mapping(xlst,java,abap), import archive)
java mapping( class implement streamTransformation; methods setParameters, execute method
how to use abap mapping
3)Integration scenario objects( Integration scenario, Integration process, actions for business system,ip)
BPM scenarios:  in pi 7.3 single stack
conditions for bpm scenario;  patters;steps and options
correlation: Link1 Link2
ways to avoid bpm scenarios:
fileRfcFile scenario with out bpm, calling modules RequestResponseBean, default, ResponseOnewaybean RR bean asyn-syn bridges with out bpm( lookups)

Operation & Message mapping:
java mapping (dom, sax, interface name, methods), xslt mapping:(important functions), java or xlst  or graphical why?
Graphical mapping: Stefan 1 Jinsin calus-walacher 2 3
 a) standard functions  b) Node functions  c) UDF-> simple, AUDF context, queue, d)Function library


Configuration objects
1. importing model and create configuration scenario, wizard, manual
(Business component,business system) ->Sender agreement, receiver agreement, Receiver determination, Interface determination
Configuration scenario ,Integration configuration scenario, ( using EOIO option, receiver determination)
values mapping or fixvalues Link1

Adatpers (AAE 7.3)
IDoc: tunnelling (sale, we20(idoc outbound/inbound-port,we21(trfc),sm59,sm58) in 7.3 (jco), tracking button in idoc monitoring in file 2idoc scenario. WE19,BD87
RFC: (program id,rfc sender cc(program id) : (time outs problems with receiver rfc:1. you can increase the time out in PI
2. you can ask the source application to set their timeout as the same as of PI)

SOAP: (generate wsdl sender soap, consume wsdl for soap receiver)
HTTP:(get,post)
PROXY:( basis configuration,check, sproxy in ecc,sxi_monitor, test,sxmb_admin) link1
FILE(FCC): file2file(with out mapping), max file size(<7 .3="" a="" href="http://help.sap.com/saphelp_nw73/helpdata/en/44/682bcd7f2a6d12e10000000a1553f6/frameset.htm">Link1
 FCCJDBC/JMS:
JDBC structure, drivers installation, est meta data load, jdbc lookup, driver deploy
(update, insert,delete sql statements, actionSELECT, UPDATE_INSERT,EXECUTE ,SQL_QUERY)
 ) ans stored procedure;
MAIL (IMAP, POP3)

idoc or rfc or proxies ?

Adapter specific message attributes ASMA,Link1 Link2 Link3 3aspects Link4
Adapter modules: Payload swap bean, strictxml2plan, XML analozerbean, payload swapbean,dynamicconfiguration bean, link1 Link2 custom module RRB rrb1

alerts: ALRTCATDEF_RULEl SU01_SCOT   7.0 before after 7.0 Link1  , control step for alerts,


PI 7.3 pipe line log
support:
server start and stop procedure < 7.3  Link , 7.3>= Link1

Others
1.New to SAP PI,
2.idoc inbound settings  idoc outbound settings

SAP XI problem analysis guide PAG

use cases:
idoc package based on size Link1

about process orchestration

--------------------------------------------------------------------------------------------------------------------

Sample interview Questions:

1) IDoc settings in single stack ( inbound and outbound) basis and developer point of view.
2) Proxies ( number of rfc connections and its type, program id use.) end to end( sap ecc, sap pi, monitoring,testing)
3) java mapping use in sap pi, case do we use, sax and dom comparing
4) any custom module development and process and with example.
5) XSLT mapping, template use, cases when do we these mapping.
6) External control of communication channel and scheduling options in sap pi.
7) SAP PI 7.3 BRM, BPM, B2B, compare with SAP PI 7.4
8) different types of UDF
9) handling deep structure message handling.
10) jdbc target structure, stored procedure handling and extra.
11)Difference between message interface Service interface, ccBPM & BPMN
12) certificate handling, public and private key, location to deploy certificates.
13) Difference between old proxy method and new proxy method.
14)
--------------------------------------------------------------------------------------------------------------------
              UDF-> context or queue, when different context is coming from input ? why?
             cXML?
              UDF -> Dynamic configuration( file name generation for file);
              asyn-sync-asyn bridge, beans, ccBPM;
               

Migration Project ( dual to single stack );

you challenges in your project
( last typical tasks in your work problem and solutions);
------------------------------------------------------------------------------------------------------------------
Idoc Single stack connection settings, SAP ECC, SAP PI(SLD,ESR,ID,NWA,Monitoring)
Ex: Sale,(LS,client assignment, port(we21),rfcDestination(sm59),we20,sm58( list of errors, reason for this entry here, few examples of idoc failure here)
SLD(Creation of ts abapAsAbap), some times, bs transport groups(Dev,Qual, Produ)
ESR(How to import idoc in swcv(settings), idoc packing mapping,  types of idocs used in your project( WHSCONS,WHSORD,DELVRY,ORDERS,INVOIC)


Proxy single stack settings -> SAP ECC, SAP PI(SLD,ESR,ID,NWA, Monitoring)

----------------------------------------------------------------------------------------------------------------
If functional +Technical 

(some times, we use idocs(standard/custom,particalCustomization), proxy message strucutre for these transaction)
P2P( PR,RFC,Vendor evolution, PO(create,update,cancel),ASN,GoodReciept, Invoice

O2C( VA03(sales order), Delivery(VA03), InboundDelivary(VL33n),)
----------------------------------------------------------------------------------------------------------------

In present project( Very useful at your manger round)

Existing problem you have identified support/dev/migration project, how did you give solution
( always practice, the (5-10 )errors in your support/development process,your solution with your team to solution.

Good vocabulary, 
the way your are solving the problem.
clear message in your speech, how do you do documentation of errors and reuse the for others, how do you mingle/manger other team member, how do you communicate with your manager.all has to expose in this speech to convince your manger.
----------------------------------------------------------------------------------------------------------------------

ccBPM, Java BPM(Single stack), difference, NWDS (development , iflow, mapping..etc)

BRM steps, how to use in Iflow(through mapping), how to use in BPM(Single stack), settings required in single stack(nwa)

B2B addOn scenario , step by step

Cloud certificates deployment in SAP PI(keystore,view in NWA), use of these in receiver communication SOAP channel.

Session handling in SF & Integration(success factor), Sales force,
step by step process for SF(success factors), 
communication channels used (SOAP http axis, transport, message protocol,),Success factor adapter cc; which is used in your scenarios, single , both, how?
( swcv, for SF, rds of this , more information, list of transactions/ message format used )

C4C cloud communication
(raise questions as similar to success factor integration)

Ariba cloud integration
(As similar to success factor questions)

B2B addon ( how to use EDI separator, add on version, content conversion, custom edi xml structure,), step by step B2B add on scenario, both inbound(edi->SAP IDOC, which uses edi separtor cc), outbound ( no edi separator cc for this ).


any experience on  HCI? ( hana cloud integration )
-----------------------------------------------------------------------------------------------------------------
Never degrade your self if you not successes, might be success another call. 
(But never stop your endeavors in your work). 
I hope , this will help you to refresh your development, support experience for any interview.
Add comment if it useful





( Help other , while you live,Whatever you can : Om-tat-sat)


Friday, November 8, 2013

Useoneasmany, FormatByexample and CollapseContext behaviour, difference in context and queue in AUDF

Formatby example




UseOneasMany example





Here, Type may have any number of values, 
But Name(context changed) name(context is not change) should have same values and a
at least one value for all these segments.




for removes context and collapse context:

http://pdpsappireference.blogspot.in/2012/09/difference-between-removes-context-and.html


Know the difference between two types of advanced user defined function

context type USD:

for example  SAL(   1,2, 3  ,CC, 22, 34, CC, 3,5,6,8)  -> CC mean context separation.

for this UDF
if you write udf( context)

for( int i=0,i< var1.length; i++)
{
// it take all values from 1,2,3,
}
//second instenace
for( int i=0,i< var1.length; i++)
{
// it take all values from 22,34  you can result.addValue(" "); result.addSuppress();
}

//second instenace
for( int i=0,i< var1.length; i++)
{
// it take all values from 3,5,6,8  you can result.addValue(" "); result.addSuppress();
}

if the udf type: Queue
for(int i=0; i
{
// it takes all values (1,2,3,22,34,3,5,6,8);
}

/* more information about


a[index].equals(ResultList.CC)


void addValue(String value);
Appends a value to the results list
void addContextChange();
Appends a context change to the list. This can also be achieved if you append the constant ResultList.CC by usingaddValue().
void addSuppress();
Appends the constant ResultList.SUPPRESS to the list. The generation of the target field and its sub nodes is suppressed for such entries.
void clear();
Deletes all previously appended values from the list.

Let us example for Creatif (internal code)


public void myCreateIf(String[] a,
            ResultList result,
            Container container)
{
  for ( int i = 0; i < a.length; i++ )
  {
     if( a[i].equals("true"))
       result.addValue( “” );
     else
       result.addSuppress();
  }
}

// converting string to integer
Integer.parseInt(Count[0])




Avoiding Null values in the context:

EMPLOYEE(EMPID, SAL)  , Some times, emp id has values, unfortunately sal field some time null
but in some cases, we need validate sal filed based on empid. ( the queue values of empid, the queue values are different, this causes some times, difficult pick the right value in queue, comparison is not possible.)

We need make both queue.lenths are same

EMPLOYEE(

empid-> is at upper level context,

sal(not at upper level context)->  mapwithdeafult ->removes context->  formatwithexample(helpOfempid context)->      now both queues are equal

File 2 File sceneario:(FCC: with out mapping logic), But Dynamic configuration informaiton



UseOneAsManyFormatByExample






Thursday, October 24, 2013

Frequent UDF codes and mapping examples are used in PI system

Calling ASMA ( Adapter specific message attributes) in mapping, after enabling check boxes in adapter level.

choose your require attributes as shown in below( FileName, direcotry).






Use formatNumber , when you expect target number always in specific/fixed format/fixed length



Mapping mutiple items from sender to receiver.  E1EDL24 occurs from sender multiple times from sender, under this-> subelement. which is quanity, we need to check if the quanity more than one or not, we need to create target item's, whose items has quanity more than zero.






Substring from start index to Given number



In case, if you want to use multiple conditions, replace those multiple conditions with help fix-values standard function in-front of standard functions.

Dynamic configuration or variable substitution or Dynamic configuration Bean?
http://scn.sap.com/community/pi-and-soa-middleware/blog/2009/03/26/dynamic-configuration-vs-variable-substitution--the-ultimate-battle-for-the-file-name


SAP Help: how to use Message mapping and advanced mapping techniques
http://help.sap.com/saphelp_nw73/helpdata/en/fa/d59f9d241d4d59b75fa571481381ca/content.htm?frameset=/en/12/6000fa78414534816e251ca53a1702/frameset.htm

Very userfull mapping logics from stefangrube blog




Use one as many with example:


SAP Help Messages-mapping examples

UseOneAsMany for converting deep structure to Falt structure


sender(header, items)->receiver(flat structure, items(merging header information))

Below example: Each person has many telephone numbers, sender person table maintains id's name's, 2nd table, only for id's and telephone,    For target, we need to put data based on telephone.(need to repeat id,name by telephone number)

Logic explanation: 
id, Name array length is same(1st table),we need to fetch person name by using person id(need to compare with id in 2nd table),

First using HashMap-> create mapping table for personId,TelephoneNumber;  for every value from 2nd table (personID)





By willian LI
http://scn.sap.com/people/jin.shin/blog/2008/01/11/sap-pi-71-mapping-enhancements-series-mapping-enhancements-demo

Graphical variables, parametrized mapping, graphical looks, structural inconsistency, Functional libraries, importing structure from database.


stefangrube frequently used mapping functions:
http://scn.sap.com/people/stefan.grube/blog/2005/12/29/new-functions-in-the-graphical-mapping-tool-xi-30-sp13

Examples on MapwithDefault,  FormatByExample, sort, sortByKey, Index

Stefangrub's examples: suppress logic




Supress values in array:




SubString examples, Using indexOf




idoc 2 flatfile ( mapping scenarios)
picking when qualifier has xyz values, then ping another element at same level( some times this has empty, need to replace with empty)



Take IDTNR ,when qualifer =010; some times IDTNR has null values, in that case use empty field to map target filed
Handling Null values from source, replacing those with empty value,
MapwithDefault node function( its draw back, It is not properly working when source filed context is at upper level. So we need to maintain the context as it is, use mapwithdefault function as shown below
Format by examples helps to gets its previous context level





Substring for last N digitis





/* var1=var1.trim();
int Strlength =var1.length();
char  a;
boolean b;
if(Strlength>0)
{
 a = var1.charAt(Strlength-1);
 b = Character.isLetterOrDigit(a); 
if(!b)
return var1.substring(0,Strlength-1);
else 
return var1;
}
else
return var1; */

Frequent sap examples on mapping.


split string and integer

http://www.tutorialspoint.com/compile_java_online.php


public class HelloWorld{

     public static void main(String []args){
         int j =0;
         String s = "xyz123";
         
for(int i = 0; i < s.length(); i++)
{
   char c = s.charAt(i);j=i;
if(Character.isDigit(c))
       // System.out.println("Hello digit"+c);
       break;
      //  else
    //     System.out.println("Hello char"+c);
        
     //end if
}// end for

System.out.println("charat--->"+s.substring(0,j));
System.out.println("charat-->"+s.substring(j,s.length()));
}
    
    
}








Useful information From other blogs
------------------------
copyXML( no need of sub elements in structure) and structure inconsistancy and graphical variables usage(avoid global variables)




Creating Database structure from communication channel (no need of creation of target element)










Handling fault messages in RFC response , which are arrived from soap fault messages or rest.