#!/usr/bin/ksh

#--------------------------------------------------------------------
#
# Program: R3frstart
#
# Functionality: Check the existance of R3 systems and
#                starts a SAP frontend on the selected Host and 
#                R3 system
#
# Hewlett-Packard GmbH
# PSO-LPO 
# March '97
#--------------------------------------------------------------------

APPLIC="OpC/SAP"
MSGGRP="SAP_General"
OBJECT="R3frstart"

HARDWARE=`uname -s`
SAPDIR=/usr/sap
SAPHOST=`hostname`

OPCMSG=/opt/OV/bin/OpC/opcmsg

if [ "$HARDWARE" = "HP-UX" ]
	then
	VERSION=`uname -r | cut -d "." -f 2-`
	if [ $VERSION -lt 10 ]	
		then
        	OPCMSG=/usr/OV/bin/OpC/opcmsg
	fi
fi
if [ "$HARDWARE" = "AIX" ]
	then
        OPCMSG=/usr/lpp/OV/OpC/opcmsg
fi
if [ "$HARDWARE" = "OSF1" ]
	then
        OPCMSG=/usr/opt/OV/bin/OpC/opcmsg
fi

HARDWARE_SINIX=`echo $HARDWARE | cut -c 1-5`
if [ "$HARDWARE_SINIX" = "SINIX" ]
	then
	SAPHOST=`/usr/ucb/hostname`
fi

logoMsg()
{
  clear
  echo "___________________________________________________________________"
  echo "          HP OpenView SMART Plug-In for SAP R/3                    "
  echo "___________________________________________________________________"
  echo ""
  echo "        "$bold"SAP hostname     $plain = $SAPHOST"
  echo "        "$bold"SAP system name  $plain = $SAPSYSTEMNAME"
  echo "        "$bold"SAP instance     $plain = $SAPINSTANCENAME"
  echo "        "$bold"SAP system number$plain = $SAPSYSTEMNR"
  echo ""
}


SAPSYSTEMNAME=""
SAPINSTANCENAME=""
SAPSYSTEMNR=""
bold=`tput smso`
plain=`tput rmso`

R3exist()
{
  if [ -d $SAPDIR ]
  then
  {
    SAPRUN="OK"
  }
  else
  {
    echo "        "$bold"ERROR:$plain This program requires the existance of"
    echo "               an R/3 system, in order to execute"
    echo ""
    read tmp
    exit 99
  }
  fi
}

SAPlistR3()
{
  SAPLIST=""
  SAPDEFAULT=""
  for SAPNAMEDIR in `ls -d $SAPDIR/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]??`
  do
    bSAPNAMEDIR=`basename $SAPNAMEDIR`
    if [ "$SAPDEFAULT" = "" ]
	then
	SAPDEFAULT=$bSAPNAMEDIR
        SAPLIST=$bSAPNAMEDIR
    else
        SAPLIST="$SAPLIST $bSAPNAMEDIR"
    fi
  done
}

SAPexecute()
{
  echo ""$bold"NOTE: Press return to start SAP front end"
  read tmp

  DEFAULTTEXT="nr=$SAPSYSTEMNR host=$SAPHOST name=$SAPSYSTEMNAME rel=undefined instance=$SAPINSTANCENAME dbname=undefined dbhost=undefined display=$DISPLAY"
 
  $OPCMSG  s=normal a=$APPLIC o=$OBJECT msg_g=$MSGGRP \
        msg_t="SAPOPC: Start frontend $DEFAULTTEXT"
}

SAPgetInstance()
{
  if [ "$SAPLIST" = "$SAPDEFAULT" ]
	then
	SAPINSTANCENAME=$SAPDEFAULT
  else
  	PS3="Please select a SAP instance [1]: "
  	echo " "
  	echo " "
  	select i in `echo $SAPLIST`
  	do
		case $i in
		$i) SAPINSTANCENAME=$i; break;;
        	esac
  	done
	if [ "$SAPINSTANCENAME" = "" ]
		then
		SAPINSTANCENAME=$SAPDEFAULT
	fi
  fi

  if [ -d $SAPDIR/$SAPSYSTEMNAME/$SAPINSTANCENAME ]
  then
  {
    SAPSYSTEMNR=` echo $SAPINSTANCENAME | \
                awk ' { print substr($0,length($0)-1,2) } ' `
    logoMsg
  }
  else
  {
    logoMsg
    echo "        "$bold"ERROR:$plain This SAP instance does not exist."
    echo ""
    read tmp
    exit 99
  }
  fi
}

SAPlistInstance()
{
  SAPLIST=""
  SAPDEFAULT=""
  STRINGLENGTH=`ls -d $SAPDIR/${SAPSYSTEMNAME}/[DVEBMGS][!Y]* 2>/dev/null | \
                wc -l `
  if [  $STRINGLENGTH != "0" ]
  then 
  {
    for SAPINSTANCE in `ls -d $SAPDIR/${SAPSYSTEMNAME}/[DVEBMGS][!Y]*`
    do
       bSAPINSTANCE=`basename $SAPINSTANCE`
       if [ "$SAPDEFAULT" = "" ]
	   then
	   SAPDEFAULT=$bSAPINSTANCE
           SAPLIST=$bSAPINSTANCE
       else
           SAPLIST="$SAPLIST $bSAPINSTANCE"
       fi
    done
  }
  else
  {
    echo "        "$bold"ERROR:$plain No SAP instance configured"
    echo ""
    read tmp
    exit 99
  }
  fi
}

SAPgetR3()
{
  if [ "$SAPLIST" = "$SAPDEFAULT" ]
	then
	SAPSYSTEMNAME=$SAPDEFAULT
  else
  	PS3="Please select a SAP system name [1]: "
  	echo " "
  	echo " "
  	select i in `echo $SAPLIST`
  	do
		case $i in
		$i) SAPSYSTEMNAME=$i; break;;
        	esac
  	done
	if [ "$SAPSYSTEMNAME" = "" ]
		then
		SAPSYSTEMNAME=$SAPDEFAULT
	fi
  fi

  if [ -d $SAPDIR/$SAPSYSTEMNAME ]
  then
  {
    logoMsg
  }
  else
  {
    logoMsg
    echo "        "$bold"ERROR:$plain This SAP system does not exist."
    echo ""
    read tmp
    exit 99
  }
  fi
}

logoMsg
R3exist
SAPlistR3
SAPgetR3
SAPlistInstance
SAPgetInstance
SAPexecute
