You need Ant scripts to automate repeated deployment-related tasks. To do so, you need to modify the available example_build.xml file to suit your needs.
More information: ant.apache.org .
The Ant tasks can be executed on a running AS Java. The tasks require a download of the AS Java client libraries. These are delivered with each AS Java installation and reside in folder usr\sap\<SID>\<Instance_Number>\j2ee\j2eeclient . After the libraries are downloaded, they should be made available in the task's class path.
Deploying SDAs
Use the sapdeploy task. It can deploy a set of SDAs located in the fileset directory.
Attributes of sapdeploy
Deployment strategies
The Deploy all option is most suitable when you deploy Java EE archives since they do not have meaningful versions.
Deploy only files with the same or lower versions
Deploy only files with lower versions
<target name="deploy"> <!-- versionrule: "all" | "same_and_lower" | "lower" --> <sapdeploy versionrule="all" throws> . . . </sapdeploy> </target>
throwsError
If set to true, a deployment result status Error will trigger a build exception for the Ant script. Possible values are: yes, true, false, no.
resultProperty
Specifies a name of a property in which value the deployment result status will be stored. The value containing the deployment result status is visible in the target containing the sapdeploy task and in its nested targets.
Error Handling
To specify the error handling mechanism you use the saperrorhandling element. It has the following attributes:
erroraction
errorstrategy
Error Action
Possible values are: prerequisites , deploy and undeploy .
Error action prerequisites denotes the preprocess for the deploy or undeploy operation, for example the validity check of the manifest, deployment descriptors and described references for a deployment.
The deploy and undeploy error actions refer to the appropriate operations.
Error Strategies
Stop - The whole deployment process will fail when one of the deployments fails. This is the default and recommended error behavior.
Skip - If the deployment of one of the components fails, all depending components are skipped and not deployed. The process continues with the next component in the deployment queue that does not depend on the failed component. When calculating depending components, deploy time references described in the SAP_MANIFEST are taken into account.
<target name="deploy"> <!-- versionrule: "all" | "same_and_lower" | "lower" --> <sapdeploy versionrule="all"> <!-- erroraction: "prerequisites" | "deploy" | "undeploy" --> <!-- errorstrategy: "stop" | "skip" --> <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/> <saperrorhandling erroraction="deploy" errorstrategy="stop"/> </sapdeploy> </target>
Fileset
Specify the directory where the archives are.
<target name="deploy"> <!-- versionrule: "all" | "same_and_lower" | "lower" --> <sapdeploy versionrule="all"> <!-- erroraction: "prerequisites" | "deploy" | "undeploy" --> <!-- errorstrategy: "stop" | "skip" --> <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/> <saperrorhandling erroraction="deploy" errorstrategy="stop"/> <!-- specify absolute path to the archives --> <fileset dir="c:/temp"> </fileset> </sapdeploy> </target>
Server
To specify the location of the server on which to deploy you use the sapj2eeengine element. It has the following attributes:
Server host
Server port
User name
User password
<target name="deploy"> <!-- versionrule: "all" | "same_and_lower" | "lower" --> <sapdeploy versionrule="all"> <!-- erroraction: "prerequisites" | "deploy" | "undeploy" --> <!-- errorstrategy: "stop" | "skip" --> <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/> <saperrorhandling erroraction="deploy" errorstrategy="stop"/> <!-- specify absolute path to the archives --> <fileset dir="c:/temp"> </fileset> <sapj2eeengine serverhost="localhost" serverport="50004" username="<user name>" userpassword="<user password>" /> </sapdeploy> </target>
Undeploying SDAs
You can undeploy components specified in a list.
Undeployment Strategies
If depending stop - If there are components that depend on the software component that has to be undeployed and these are not part of the list of components that have to be undeployed, the undeployment process will stop. The dependent components have to be undeployed for the undeployment to be successful.
Undeploy Depending - All deployed components that depend on the component that has to be undeployed will be undeployed too.
Please use this strategy with caution. If there is a large dependency chain, you may undeploy applications you did not intend to undeploy.
<target name="undeploy"> <!-- undeploy strategy: "IfDependingStop" | "UndeployDepending" --> <sapundeploy undeploystrategy="IfDependingStop"> . . . </sapundeploy> </target>
Error Handling
You specify them with the saperrorhandling element. It has the following attributes:
erroraction
errorstrategy
Error Action
Use with value undeploy.
Error Strategies
Stop when the first error occurs - The whole undeployment process will fail if one of the undeployments fails. This is the default error behavior.
Skip undeployment of archives depending on the erroneous undeployment - This option is most suitable when undeploying Java EE archives since all your archives will be undeployed. If the undeployment of some of the components fails, all depending components are skipped and not undeployed. The process continues with the next component in the undeployment queue that does not depend on the failed component.
<target name="undeploy"> <!-- undeploy strategy: "IfDependingStop" | "UndeployDepending" --> <sapundeploy undeploystrategy="IfDependingStop"> <!-- erroraction: "prerequisites" | "deploy" | "undeploy" --> <!-- errorstrategy: "stop" | "skip" --> <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/> <saperrorhandling erroraction="undeploy" errorstrategy="stop"/> . . . </sapundeploy> </target>
List with Components for Undeployment
You have to list the components for undeployment in a plain text file. Components have to be listed as <vendor>/<name> pairs, each on separate line.
isv.com/app1 isv.com/app2
Then the file is referred to as the listfilepath attribute of the sapundeploylist element.
<target name="undeploy"> <!-- undeploy strategy: "IfDependingStop" | "UndeployDepending" --> <sapundeploy undeploystrategy="IfDependingStop"> <!-- erroraction: "prerequisites" | "deploy" | "undeploy" --> <!-- errorstrategy: "stop" | "skip" --> <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/> <saperrorhandling erroraction="undeploy" errorstrategy="stop"/> <!-- specify absolute path to the file containing list with components for undeploy --> <sapundeploylist listfilepath="c:/temp/UndeployList.txt"/> . . . </sapundeploy> </target>
Server
You have to specify the location of the server from which to undeploy. The information you have to enter is the same as the server for deployment.
Specifying Substitution Variables
You should use the task sapp arams .
Attributes of sapparams
remove = yes | true | on | no | false
This attribute specifies the remove behavior of the operation if it is switched on any parameters contained currently on the engine, which are not in the parameters list for of the operation, will be removed. Hence passing an empty list with enabled remove will clear all parameters from the engine.
Variables
The substitution variables should be listed in a plain text file with format: <name>=<value> on each line of the file. If a value is not specified, the variable will not be considered. A warning message is shown. If duplicate parameter names are specified only the first parameter is considered. The second will be skipped. A warning message is shown.
The location of the file is specified as listfilepath attribute of the sapparamslist element.
<target name="params"> <!-- remove: "yes" | "no" --> <sapparams remove="no"> <!-- specify absolute path to the file with params list --> <sapparamslist listfilepath="c:/temp/ParamsList.txt"/> . . . </sapparams> </target>
Server
You have to specify the location of the server from which to undeploy. The information you have to enter is the same as the server for deployment.