Inicio del área de contenido

Documentación de objeto   Páginas de HTML aptas para CIC Localizar documento en árbol de navegación

Definición

Una actividad CIC de operación de la clase HTML le permite abrir una página de HTML para visualizarla en un control HTML del componente de área de aplicación. Puede:


Las secciones siguientes describen los pasos necesarios para diseñar una página de HTML que aproveche las características listadas anteriormente.

Tratamiento de datos transferidos a una página de HTML

Cuando configura una actividad en un perfil de barra de actividades, define también un flujo de datos dentro de la operación que ha llamado. Si esta operación es de la clase operación de HTML, la página de HTML llamada necesitará un mecanismo para tratar los parámetros transferidos. En realidad, los parámetros forman parte del URL de la llamada. Si no hace ninguna otra configuración en la operación de HTML, el URL básico quedará separado del bloque de argumentos por un "?". La pareja nombre-valor de un argumento queda separado de la pareja nombre-valor de otro por una ";". Por ejemplo, un URL podría presentar este aspecto:

http://pages/createServiceNotification.HTML?NOTIF_TYPE=S1;CUSTOMER=CB;

En este ejemplo, los parámetros 'NOTIF_TYPE' y 'CUSTOMER' se transfieren a la página createServiceNotification.HTML.

Para procesar estos parámetros desde su página existe el objeto de JavaScript SapUrlArgs. Este objeto está definido en el Include JavaScript CIC.JS que puede encontrar en el Repository de Web de R/3 (actividad SMW0) en el paquete CCMA. Si quiere utilizar estas funciones, debe incluir este código en su página especificando el argumento SRC de la etiqueta <SCRIPT>.

SapUrlArgs ofrece el método getArg para acceder a los parámetros fácilmente, según se muestra en el código siguiente:

<script SRC="CIC1.JS">
var args = new SapUrlArgs;
...
</script>
...
<h2>Customer: <script>args.getArg("CUSTOMER_ID");</script></h2>

En este ejemplo, primero instanciamos el objeto args de tipo SapUrlArgs. A continuación, llamamos su método getArg para recuperar el valor del argumento "CUSTOMER_ID". Tenga en cuenta que con este método también puede acceder a parámetros multilineales. Sólo tiene que especificar un índice como segundo argumento opcional para la llamada de método. Este índice comienza en 0 (en lugar de en 1 como ocurre en el idioma ABAP).

A continuación se detallan métodos disponibles en el objeto SapUrlArgs:

getArg(argName, index)

Devuelve el valor de un argumento.

argName : denominación del argumento como string

index: índice del argumento multilineal (opcional)

returns: valor del argumento

 

length(argName)

Devuelve el número de elementos si el elemento multilineal;

de lo contrario, 1.

argName : denominación del argumento como string

returns: número de elementos de un parámetro multilineal

 

getArgList

Devuelve una matriz JavaScript que contiene los nombres de todos los argumentos

returns: nombres de todos los argumentos en una matriz JavaScript

 

Transferencia de datos de una página de HTML

Existen básicamente dos circunstancias en las que puede querer transferir datos de su página de HTML al CIC:

En ambos casos, el principio es el mismo: debe definir un formulario HTML, asignar un método y una acción específicos y desencadenar la presentación de este formulario.

 

Lanzamiento de una operación de la barra de actividades

Suponga que quiere lanzar una operación de la barra de actividades '"Crear aviso de servicio" denominado CSNO desde su página de HTML. Además, suponga que sólo quiere transferir dos parámetros a la operación: un CUSTOMER_ID y un TEXT que es un parámetro multilineal. Existe también un perfil de barra de actividades que define la operación CSNO y está relacionado con la respectiva configuración de HTML. Para que el ejemplo sea más real, se transfiere el valor del cliente como argumento desde la visualización de datos comerciales. El formulario HTML podría presentar este aspecto:

<script SRC="CIC1.JS">

var args = new SapUrlArgs;

...

</script>

<form name="params" method=post

action="SAPEVENT:SUBMIT_FORM_AS_POST_METHOD" >

<input type=hidden name="SapCallId" value="CSNO">

 

<td align="right"><font face="arial" size="2" color="navy">

<b>Customer</b> </font>

</td>

<td align="left"><font face="arial" size="2" color="navy">

<script>document.write(args.getArg("CUSTOMER_ID"));</script>

</td>

 

<td valign="top" align="right"><font face="arial" size="2"

color="navy"><b>Problem description</b></font>

</td>

<td align="left"><textarea name="TEXT" wrap="physical"

ROWS="3" COLS="40"> </textarea>

</td>

<button name=Send type="button" value="Send" onClick="createNotif();"

<p>Send</p>

</button>

<button name=Exit type="button" value="Exit" onClick="exit();"

<p>Exit</p>

</button>

</form>

 

El código indicado muestra sólo el número de cliente y un área de texto que puede tratarse junto con dos pulsadores para presentar y finalizar el formulario. Al hacer clic en un pulsador, se llaman las funciones createNotif() y exit() respectivamente. El valor de acción "SAPEVENT: SUBMIT_FORM_AS_POST_METHOD" hace que los datos del formulario se transfieran a la aplicación CIC. Siempre deberá especificar "contabilización" como método del formulario. Tenga en cuenta también el campo oculto SapCallId que contiene el código de transacción de la barra de actividades (en este caso, CSNO). La variable de este formulario está predefinida. El CIC espera encontrar el código de actividad en esta variable.

 

A continuación se detalla la función JavaScript CreateNotif().

function CreateNotif() {

// fijar cliente transferido desde CIC

document.params.CUSTOMER.value = args.getArg("CUSTOMER_ID");

//submit form

document.params.submit();


Esta función fija el valor de la variable CUSTOMER_ID y presenta el formulario. El CIC gestiona el elemento multilineal TEXT de la siguiente manera: se dividen las líneas de texto del área de texto de HTML con una secuencia <CarriageReturn><LineFeed>. Después de la presentación, el CIC

interpreta esta secuencia como un delimitador entre las líneas de un elemento multilineal. Tenga en cuenta que las variables CUSTOMER_ID y TEXT deben estar definidas en la sección "Parámetros internos" de la configuración de esta operación de HTML.

Después de ejecutar la transacción, el CIC cancelará por defecto el área de trabajo que representa la operación de HTML. Si no desea que lo haga, puede fijar una variable de formulario SapExit al string sin valores (""). Con esto, el CIC volverá a la página de HTML que ha iniciado la operación de la barra de actividades. Con esta opción, la página podría seguir gestionando más interacciones del usuario después de haber iniciado la operación. Las instrucciones de HTML serían similares a:

<input type=hidden name="SapExit" value="">

 

Salir de una página de HTML

En general, el CIC interpreta cualquier presentación de un formulario que no tenga un valor no inicial para la variable SapCallId como una orden de cerrar la página de HTML. El resto de variables del formulario presentado que se corresponden con los elementos de exportación de la sección 'parámetros externos' de la configuración de HTML pueden transferirse de nuevo a componentes del CIC utilizando el flujo de datos estándar. Si no quiere transferir ningún dato al CIC, basta con que presente un formulario vacío. En tal caso, podría efectuar la rutina de salida de la siguiente manera:

<form name="empty"> </form>

<script> document.empty.submit(); </script>

 

Notas adicionales

Las denominaciones de los elementos de interfase definidos en la configuración de una operación de HTML dependen de cada caso. Por ejemplo, si especifica un parámetro para import en la sección "Parámetros externos" con el nombre 'Customer_id', debe utilizar exactamente el mismo string para acceder a un argumento utilizando la función respectiva de JavaScript (p. ej. args.getArg("Customer_id"). Una llamada como args.getArg("CUSTOMER_ID") o args.getArg("customer_id") fallaría.

 

 

Fin del área de contenido