Friday 5 October 2012

How to Install SAP Netweaver Application Server?

  • Go to web browser & enter http://www.sdn.sap.com/irj/sdn
  • If not a member? Click on "not a member" to register. 
  • Select to register as "Public User". Then, continue by follow the easy prompt.
  • After submitted your registration, you have to validate your account though the link in the mail from SAP to complete the registration.
  • After the validation, you might be asked for few questions to completed your profile.
  • Once you logged into the community network, click on the "Downloads" from the quick link.
  • Next, click on "Software Downloads". Select "SAP NetWeaver Main Releases".
  • On the "SAP NetWeaver Main Releases" page, scroll all down to find the SAP NetWeaver Application Server which corresponding  to your operating system.
  • Before you proceed to download, please ensure that your computer have enough resources to run the SAP NetWeaver Application Server.
  • Requisition before the installation:
    • The hostname must not exceed 13 characters. No special character is allowed.
    • Check the File System of the computer that you are intend to install the SAP NetWeaver Application Server. Select Computer > Select C: Drive > Right click the mouse & select Properties. You can see the File System under the General tab.
    • The web-browser must be IE 6.0 or higher or Firefox 1.0 or higher
    •  RAM > 2GB
    • CPU > Pentium III (1.1GHz or higher)
    • minimum 50 GB hard disk space (36 GB permanent)
    • High resolution monitor (1024x768 or higner, 256 colors)
    • Note: Only 1 SAP Server per computer allowed.
    • Make sure the file %WINDIR%\system32\drivers\etc\services must no include an entry for the port 3200, 3600 and 8000
    •  Then, go to C:\Windows\System32\drivers\etc folder, right click on the services file. Click on Open with Notepad.Scroll up & down & make sure that port 3200, 3600 and 8000 are not in the services file.
    • Then you can download to your local pc.
    • Extract both zip files using winrar.
    • Run the cmd application as administrator.
    • On the command prompt, type hdwwiz.exe & click on Enter to start the Add Hardware wizard.
    • Choose to install the hardware that I manually select from a list (Advanced). Click on Next.
    • Select Network Adapter.
    • Under Manufacturer, select Microsoft. & under Network Adapter, select Microsoft Loopback Adapter. Click on Next & then Finish.
    • Assign a static IP address to the lookback adapter.
    • Right click on the Notepad & run as administrator.
    • Click on open & select C:\Windows\System32\drivers\etc\hosts file.
    • In the hosts file, make the required entry.
          [STATIC_IP_ADDRESS]              [hostname]
  •  Open the SAP_NetWeaver_XXX_Installation_Master\IM_WINDOWS_X86_64 folder, click on sapinst.exe to start the installation of SAP NetWeaver Application Server.
  • Select SAP Installation Master > SAP NetWeaver 7.0 including Enhancement Package 2 > SAP Application Server ABAP > MaxDB > Central System > Central System. Click on Next
  • Scroll all the page down, & click on I accept. Then, click on Next.
  • On the Java Runtime Environment page, set the JRE Directory to the JRE path on the PC.
          Example: C:\Program Files (x86)\Java\jre6
  •  Set the Master Password (which contents upper & lower case character & numeric number, maximum 18 characters long)
  • On the Paramter Summary, click on Next if you accept the default settings.You can modify them before you click on Next.
  • A successful installation will end with a finished successfully note.
  • There will have a icon for SAP Management Console on the desktop.
  • Open the sapmmc, expand the tree structure, navigate to the SAP System node that you want to explore.
  • Click on Start icon.
  • Choose the required option(s). Click on OK.
  • You can check the SAP system by login using the SAP Logon 720 application.





Wednesday 3 October 2012

ITSMobile?

ITSmobile简介

  •  ITSmobile (Internet Transaction Server for Mobile) 是新一代实现手持、移动设备(如RF)应用的SAP技术,用于连接手持、移动设备与SAP系统。
  • ITSmobile应用Dynpro编程模式。
  • ITSmobile代替了WEB SAPConsole,SAPConsole NW7.1 之后将被逐渐淘汰。
  • ITSmobile适用于SAP Netweaver 7.10,7.0和SAP Netweaver 2004。
  • ITSmobile是Netweaver和ITS集成的一部分。它可以用来创建一个可以通过手持、移动设备的游览器登入的SAP应用程序有网络功能的SAP应用程序)。
ITSMobile features HTML generation of SAP Screens through its Template Generator
Generated HTML acts as 'Templates' for further customization.ITSmobile模板技术使用了HTML模板概念,创建可视化在浏览器中为SAP屏幕的应用。
动态内容/数据可以包含在模板运行时使用HTMLBusiness(HTMLB)。
备注: ITSmobile模板生成器允许你生成一个模板或直接创建屏幕。


ITSmobile在开发上有以下几个优点:
  • 可以使用ABAP语言进行开发和调试
  • 可以使用SAPGUI基于windows的调试
  • 快速初始化模板和可视化的HTML
  • 可以编辑模板生成的HTML,达到需求
  • HTML 或者 JavaScript可以简单的集成
有两种服务,itsmobile00和itsmobile01,在你的系统,你可以用来测试ITSmobile功能。
ITSmobile支持1维和2维的Barcode。
支持语音拣选(pick by voice),XHTML+Voice ,ITS XV Template generator
支持RFID (Radio-frequency identification)
 

How to Develop a ITSmobile Application


工具要求:
  • SAP Web AS ABAP development workbench
  • Web application Builder which has 2 components :
  •   Internet Service creator.
                      Parts of Internet Service    :
                         Service Parameters
                         Theme / Topic
                         HTML Templates
  • HTML Template Generator
运行组件要求 :
  • ICM Status -shoul be in  Running status(Needs to be checked in Transaction SMICM).
  • HTTP Service - should be Active(In transaction SMICM,GOTO-->Services)
  • Published Internet Service(In transactions SE80 and SICF)
  • ITS own Services

ITSmobile体系结构 (Architecture of ITSmobile)

Steps to create Mobile ITS application:
1. 生成Internet  Service和模板
  • Create the Application(that needs to dispalyed in handheld device) in SAP Web AS ABAP development workbench in SE80.
  • In transaction"SE80", select the "Package" in which you want to create the Internet Service (ITS).
  • In the tree structure of the package, select "ITS Services".
  • Right click the mouse and select "Create".
  • If you have created "Package", right click "Create" > "More" > "Internet Service".
  • Enter an "Internet Service" name and a "Transaction code" that is to be linked to the service. Leave the ITS Mixed Mode option unselected and save your entries.
  • A Theme 99 folder is created for the service at the same time as the service.
  • In transaction SE80, switch to your ABAP application and select all of the screens for which you want to create a template, and choose Create Template from the context menu (if necessary, through More Functions).
  • Enter the name of the previously created service and a theme (such as 99) and selection Mobile Devices as the generation style.
  • On the Parameters tab page, enter all of the required parameters. If you have created the service as screen-based and have already specified the associated transaction during the creation process, the parameter ~TRANSACTION is predefined.
  • Parameter Value Detail
    ~ITSMOBILE 1 Defines the service as a mobile service and sets the corresponding ITS standards.
    ~TRANSACTION <your transaction> Specifies the transaction to be executed.
    ~THEME <your theme>(for example, 99) Specifies the desired theme for your service.
     
  • Confirm by choosing Save.
  • Generate HTML Mobile template for all the screens of the ABAP application from "SE80"
  • Publish the Internet Service from "SE80"
  • Select the service and choose Publish > Entire Service from the context menu.
  • Note at this point, that to publish the entire service, you need to select at least one ITS instance (ITS site). To do this, in the ABAP Workbench, choose Utilities ® Settings. Choose the Internet Transaction Server tab page, and then choose Publish. At this point, you can decide the instances (sites) on which your service is to be published.
  • A message in the status line shows whether the publishing was successful.
  • Creating an ICF Service with the same name (as in Step-2) from Transaction "SICF" under the folder: "default_host/sap/bc/gui/sap/its"
  • Activate the service created from "SICF". The service can be tested from the context menu of the Service.

 Development Guidelines for Mobile Applications:

  1. Keep the UI simple by design
  2. Keep in mind the limited screen sizes of handheld devices
  3. It is recommended to limit the UI elements to: "Text Box", "I/O Fields", "Checkboxes", "Radio Buttons" and "Pushbuttons" Refer Supported Screen Elements for more details
    Frames, Tab strips, Table Controls are not supported
  4. GUI Status not to include any Buttons. Instead include it on the Screens
    Error/Warning/Status/Information messages should be handled on an output field. That means, "Message" statement or calling a Function Module to show a popup message / confirmation prompt, should not be used

Steps to create Internet service in SE80.

  1.  In SE80 choose Internet service from the dropdown and give an internet sevice name.
  2. Give the transaction name of the program.
  3. Create template by right clicking on the internet service CREATE->TEMPLATE.Give the theme as 99,enter the screen no for which template needs to created and the generating style should be Mobile Gerate.
  4. Double click on the Internet service name.In the parameters section give ~transaction = transaction name of the program and ~generateddynpro = 1.
  5. Save the service.Right click on the Internet service select PULISH->COMPLETE SERVICE.You should get a success message like this.

Steps to create Service in SICF transaction.

  1. In SICF transaction,execute the report to get into the second screen.Navigate to the path default_host/sap/bc/gui/sap/its and right click and select New sub element.
  2. Give the same Internet service name as given in SE80.In the sevice tab for GUI LINK drop down select YES.In the GUI configuration tab give the following parameters.
  3. In the Logon Data tab choose Procedure as Alternative logon procedure.
  4. Delete other types of logon procedures retaining only Fields Authentication.
  5. In the Handler list tab give the class name as CL_HTTP_EXT_ITS.
  6. In the error pages tab choose the last radio button system login.
  7. Click the configuration button.
  8. Click the check boxes : System ID,client,Language,system messages.
  9. Give the user specific class as 'CL_MOBILE_SYSTEM_LOGIN'.
  10. save the internet service,right click and activate it.Then right click and Test Service.
  11. It will open a webpage and will display the application as seen in handheld device.
Useful link:-
http://help.sap.com/saphelp_nw70/helpdata/en/46/668d4b72255de4e10000000a1553f6/frameset.htm

What is POJO?

POJO (Plain Old Java Object), is a normal Java object class (that is, not aJavaBean, EntityBean, SessionBean etc.) and does not serve any other special role nor does it implement any special interfaces of any of the Java frameworks. This term was coined by Martin Fowler, Rebbecca Parsons and Josh MacKenzie who believed that by creating the acronym POJO, such objects would have a "fancy name", thereby convincing people that they were worthy of use.

POJO是一个简单的、正规Java对象,它包含业务逻辑处理或持久化逻辑等,但不是JavaBean、EntityBean SessionBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。

Example: 

public class customer {
   private long id;
   private String firstName;
   private String lastName;
   private String address;

   public void setId(long id) {
      this.id=id;
   }

   public void setFirstName(String firstName) {
      this.firstName=firstName;
   } 

   public void setLastName(String lastName) {
      this.lastName=lastName;
   } 

   public void setAddress(String address) {
      this.address=address;
   } 

   public void getId() {
      return id;
   }

   public void getFirstName() {
      return firstName;
   } 

   public void getLastName() {
      return lastName;
   } 

   public void getAddress() {
      return address;
   }

Tuesday 2 October 2012

Archive & Unarchive linux commands

TAR Command

Creating a tar file from directory or file
   # tar -cvwf [tar_file] [directory | file]

Extracting/Unarchive/Untar the *.tar files from a tar file
   # tar -xwf [tar_file] -C [to_specific_folder]

Extracting/Unarchive/Untar the *.tar files from a tar file
   # tar -xvwf [tar_file] -C [to_specific_folder]

Extracting/Unarchive/Untar the *.gz files from a tar file
   # tar -xvwzf [gz_file] -C [to_specific_folder]

Creating a tarred file that is compressed
   # tar -cvjf [tbz_file] [directory | file]

Extracting the files from a tbz file
   # tar -xjf [tbz_file] -C [to_specific_folder]

Listing the tar contents without extracting any of the files
   # tar -tvf [tar_file]

GZI, GUNZIP Command

Compress the file
   # gzip [file]

Uncompress the compressed file
   # gunzip -c [compressed_file]                             // the compressed file will no longer on the drive
   # gunzip -c [compressed_file] > [file]                 // the compressed file won't be deleted

ZCAT Command

Uncompress a file
   # zcat [file]

ZIP, UNZIP Command

Archive file
   # zip [archive_file] [file_to_be_archived...]

Archive a directory
   # zip -r [archive_file] [directory_to_be_archived]
   # zip -rm [archive_file] [directory_to_be_archived]    //the to-be-archived directory will be
                                                                                             //removed
Unarchived an ZIP archive
   # unzip [archive_file]

BZIP2, BUNZIP2 Command

Compress a file
   # bzip2 [file_to_be_compressed]                            // the uncompressed version will be deleted
   # bzip2 -c [file_to_be_compressed] > [compressed_file]
  
Compress a directory
   # bzip2 -r [directory]

Uncompress compressed file
   # bunzip2 [compressed_file]
   # bzip2 -d [compressed_file]


/etc/sysconfig/iptables settings

To check if iptables is installed.
   # rpm -q iptables

To see if iptables is actually running
   # lsmod | grep ip_tables

To inspect currently loaded rules for iptables.
   # iptables -L

To save the new added rules
   # /sbin/service iptables save


To enable iptables by running:
   # system-config-securitylevel

To edit the rules for iptables.
   # vi /etc/sysconfig/iptables

Example of the content of / etc/sysconfig/iptables file.

*nat
:PREROUTING ACCEPT [190:33819]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [4:240]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Wed Nov 23 12:04:17 2011
# Generated by iptables-save v1.4.7 on Wed Nov 23 12:04:17 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1413536:615884533]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth+ -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth+ -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


Rule Set for iptables

1. Set of rules that all all outgoing connections but block all unwanted incoming connections:
# iptables -P INPUT ACCEPT
# iptables -F
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -L -v

Switch Definition
-P  : default policy
-F  : flush all existing rules
-A : append a rule to a specific chain
-i   : to specify packets matching or destinated for the localhost interface
-j   : to jump to the target action for packets matching the rule.
-m : to load a module (state)
-p  : connection types
-dport : connection port
-L -v: to list the rules
-s  : source IP address

2. If allowed external internet interface (ppp0 dialup modem), it will have effectively like disabled our firewall.
# iptables -A INPUT -i ppp0 -j ACCEPT
 
3. To allow all incoming packets within internal LAN but still filter incoming packets on our external internet connection.
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -i eth0 -j ACCEPT 


4. Add packets from trusted IP address
# iptables -A INPUT -s [ip_address] -j ACCEPT        
# iptables -A INPUT -s [ip_address]/[port] -j ACCEPT      
# iptables -A INPUT -s [ip_address]/[subnet_mask] -j ACCEPT 
# iptables -A INPUT -s [ip_address] -m mac --mac-source [mac_address_of_source_ip_address] -j ACCEPT 
 

5. Accept tcp packets on destination port 6881 (bittorent)
# iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
 
6. Accept tcp packets on destination port 6881-6890
# iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT
 
7. Accept tcp packets on destination port 22 (SSH)
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
8. Accept tcp packets on destination port 22 (SSH) from private LAN
# iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT

Excel Formula



The INDEX function


The basic INDEX function returns a VALUE based on a defined array / column and a row number.  The syntax from Excel is as follows:
=INDEX ( array , row number )
Below is an example of using INDEX to return the value “Wallet,” assuming that you already know that the value is three cells down on your defined array.


Formula: =INDEX(B2:B6,2)
 

A
B
C
1
ID
Product
Quantity
2
101
Watch
5
3
128
Wallet
12
4
206
Bag
200
5
212
Shoes
8
6
237
Belt
2
7
Lookup
Result

8
128
Wallet


 

The MATCH function

The basic MATCH function returns a NUMBER based on the relative position of a lookup value within a defined array / column.  The syntax from Excel is as follows:
=MATCH (  lookup value , lookup array , match type )
Below is an example of using the MATCH formula to return the position of “206″ within our column reference.

Formula: =MATCH(A8, A2:A6, 0)
 


A
B
C
1
ID
Product
Quantity
2
101
Watch
5
3
128
Wallet
12
4
206
Bag
200
5
212
Shoes
8
6
237
Belt
2
7
Lookup
Result

8
206
3


Since “206″ is 3th cells down in the array, the value “3″ is returned.

INDEX MATCH

When we combine both the INDEX formula and the MATCH formula, the number that the MATCH formula returns becomes the row number for your INDEX formula.
=INDEX ( array MATCH formula )
=INDEX ( Column I want a return value from , ( MATCH ( My Lookup Value , Column I want to Lookup against , Enter “0″ ))
 

Below is an example of using the INDEX MATCH to return "Quantity” for our lookup value.

As you can see, it returns the same value we got from VLOOKUP.

Formula: =INDEX(C2:C6, MATCH(A8, A2:A6, 0))


A
B
C
1
ID
Product
Quantity
2
101
Watch
5
3
128
Wallet
12
4
206
Bag
200
5
212
Shoes
8
6
237
Belt
2
7
Lookup
Result

8
206
200






The VLOOKUP function
First our point of reference: the trusty VLOOKUP formula.  VLOOKUP returns a VALUE based on a defined array and column reference.  The syntax from Excel is as follows:
=VLOOKUP ( lookup value , lookup array , column , range lookup )


Below is an example of using VLOOKUP to return the value “200” based on the lookup value “206”

Formula: =VLOOKUP(A8, A2:C6, 3, FALSE)
 

A
B
C
1
ID
Product
Quantity
2
101
Watch
5
3
128
Wallet
12
4
206
Bag
200
5
212
Shoes
8
6
237
Belt
2
7
Lookup
Result

8
206
200






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


A
B
C
D
Ali

Susan
 Yes
Susan

Meng
 No
May

Yee
 No
Mutu

Ahmad
 No
Joe

Ali
 Yes


 To check is the variable in column C existed in the column A (row 1-5) list.
 [column D]
    =IF(ISERROR(MATCH(C1,$A$1:$A$5,0)),"No","Yes")



A
B
C
D
Ali
13
Susan
20
Susan
20
Meng

May
7
Yee

Mutu
34
Ahmad

Joe
56
Ali
13


To get the pairing variable for variable in column C from table A1:B5
[Column D]
 =IF(ISERROR(VLOOKUP(C1,$A$1:$B$5,2,FALSE)),"",VLOOKUP(C1,$A$1:$B$5,2,FALSE))