Quantcast
Channel: SAP archivos - Blog de SAP: Actualidad SAP, Business Intelligence, SAP HCM, Abap...
Viewing all 593 articles
Browse latest View live

SAP PY – Recaídas en las bajas de IT

$
0
0

En el artículo de hoy vamos a repasar cómo tratar las bajas de IT con recaídas en SAP PY. Veamos primero en qué consiste una baja con recaída. Cuando un trabajador, tras recibir la alta médica de una IT, posteriormente vuelve a causar baja por el mismo motivo, se dice que el trabajador se encuentra en baja por recaída. Para que una baja se considere recaída no deben transcurrir más de 180 días entre la fecha de alta médica y la nueva baja.

La baja con recaída deberá continuar con el cómputo de la duración de la baja original, igual que si la baja no hubiese sido interrumpida.

Por otro lado, para calcular la base reguladora diaria se utilizará la base de cotización del mes anterior a la recaída (Anteriormente se usaba la base de cotización anterior al primer mes de la baja).

Y hasta aquí lo que dice la ley, pero…

¿Cómo funciona en SAP PY?

Lo primero que se deberá hacer cuando nos encontremos ante una recaída será informar el infotipo 2001 correctamente. En el infotipo 2001 aparecerán dos registros, uno haciendo referencia a la baja original y otro a la recaída. Para relacionarlos, se usarán los campos “Vinculaciones” que aparecen en la parte inferior del infotipo.

SAP PY - Infotipo 2001

En el primer registro se informará el primer campo (P2001-KENN1) con un valor numérico que identificará a la baja. En el segundo registro (la recaída) se deberá indicar el identificador de la baja en el campo de la derecha (P2001-KENN2). De esta forma SAP sabrá que los registros están relacionados, y tratará la segunda baja como una recaída.

Informar sobre recaídas en SAP PY - Infotipo 2001

Por otro lado, se debe parametrizar en el sistema el cálculo de la base reguladora diaria. Para ello se accederá a la vista V_T5EU3 y se elegirá el valor adecuado para la situación SBRRE (Si se quiere más información sobre la situación SBRRE, se puede consultar la nota 833764):

  • Valor 0: La BRD en casos de recaída se toma del mes anterior al comienzo de la enfermedad original.
  • Valor 1: La BRD en casos de recaída se toma del mes inmediato anterior al periodo de enfermedad o baja más reciente

Y ya sólo falta ejecutar la nómina y comprobar que el sistema calcula los importes correctos. Recordar que para comunicar el parte de baja a la Seguridad Social, se debe rellenar el infotipo 0768 – Mensaje FDI tal y como se explicó en un artículo anterior sobre SAP PY, donde deberemos marcar el campo de “Recaída”.


RECC – Régimen especial del criterio de caja

$
0
0

El Régimen Especial del Criterio de Caja (RECC) se encuentra entre las principales novedades que se introducen en la Ley de apoyo a los Emprendedores y su internacionalización (Ley 14/2013, de 27 de septiembre, BOE de 28 de septiembre de 2013).

La nueva regulación tiene como objetivo, tal como se señala en el preámbulo de la Ley de apoyo a los emprendedores, paliar los problemas de liquidez que vienen afectando de modo significativo a todo el colectivo de pequeñas empresas, empresarios autónomos y profesionales.

Régimen Especial de Criterio de Caja - RECC

¿Qué requisitos debemos cumplir para acogernos al régimen RECC?

Régimen Especial Criterio Caja: Requisitos subjetivos

Pueden acogerse todos los empresarios y profesionales , personas físicas o jurídicas , que sean sujetos pasivos de IVA, que realicen actividades económicas y que en el año natural anterior al que deseen aplicar el RECC, no hayan superado los 2 millones de euros en volumen de operaciones, ni hayan cobrado, más de 100.000 euros en efectivo de un mismo cliente.

Régimen Especial Criterio Caja: Requisitos objetivos

El RECC se aplica para todas las operaciones realizadas en el territorio de aplicación del impuesto. Quedarán excluidas las siguientes operaciones:

  • Las acogidas a los regímenes especiales simplificados, agricultura, ganadería y pesca, recargo de equivalencia, oro de inversión, servicios prestados por vía electrónica y del grupo de entidades.
  • Las entregas de bienes exentas (exportaciones, depósitos francos…)
  • Adquisiciones intracomunitarias de bienes.
  • Inversiones del sujeto pasivo.
  • Importaciones y operaciones asimiladas.
  • Autoconsumos de bienes y servicios.

¿Cómo funciona el régimen RECC?

El régimen RECC podrá aplicarse a los sujetos pasivos que cumplan los requisitos anteriores y opten por su aplicación en los términos que se establezcan reglamentariamente.

La opción se entenderá prorrogada salvo renuncia. Esta renuncia tendrá una validez mínima de 3 años. La renuncia o exclusión del régimen determinará el mantenimiento de las normas reguladas en el mismo, respecto a las operaciones efectuadas durante su vigencia.

En las operaciones que se acojan al Régimen especial de IVA de Caja, el impuesto se devengará en el momento del cobro, ya sea total o parcial, del importe percibido. Si no se ha producido el cobro, el devengo se producirá el 31 de diciembre del año posterior. Además, será necesario acreditar el momento del cobro de la operación, ya sea total o parcial.

Cuando se trate de repercutir el IVA, la repercusión se efectuará en el momento de expedir y entregar la factura, pero no se entenderá como producida hasta el momento del devengo del impuesto, es decir, del cobro de la factura.

¿Cómo afecta a otros sujetos?

Cuando una entidad no sujeta a este régimen, recibe una factura de un sujeto que sí está acogido, no se podrá deducir el IVA de esta factura hasta que no realice el pago de la misma o hasta el 31 de diciembre del año siguiente. En todo caso, tendrán que acreditar el momento en el que realizan el pago.

Las obligaciones del Régimen Especial de Criterio de Caja

$
0
0

En el artículo anterior veíamos los requisitos y la funcionalidad del Régimen Especial del Criterio de Caja (RECC). En este nuevo artículo vamos a ver cuáles son las obligaciones que deben cumplir las empresas que se acojan a este nuevo sistema de IVA o los sujetos pasivos que sean destinatarios de operaciones afectadas por el RECC.

Obligaciones del RECC (Régimen Especial del Criterio de Caja)

Obligaciones registrales del RECC

Los sujetos pasivos acogidos al Régimen Especial del Criterio de Caja, deberán llevar un libro registro de facturas expedidas con indicación de las fechas de cobro de la operación, el importe cobrado y la cuenta o medio de cobro utilizado. Deberá también llevarse un libro registro de facturas recibidas, obligación que se extiende a los sujetos pasivos no acogidos al régimen especial destinatarios de las operaciones de caja, indicando las fechas de pago e importe de cada una y el medio de pago utilizado.

Obligaciones de facturación del RECC

Se exige que todas las facturas y sus copias expedidas por el sujeto pasivo acogido al RECC, referente a las operaciones sujetas al mismo, lleven la mención “Régimen Especial del Criterio de Caja”.

Obligaciones de información del RECC

Estarán obligados a presentar el modelo 347 los sujetos pasivos que realicen operaciones a las que les sea de aplicación el RECC y los sujetos pasivos que sean destinatarios de operaciones afectadas por este nuevo régimen.

En este modelo, se detallarán de manera separada tanto las operaciones realizadas por este nuevo criterio de caja, como las operaciones llevadas a cabo según la regla general de devengo. Estas operaciones se tendrán que consignar en dos momentos:

  1. En el momento en el que se entendería realizada la operación según el criterio general de devengo (fecha de la entrega de los bienes y/o prestación de los servicios).
  2. En segundo lugar cuando se verifique el cobro recibido, o a falta del mismo por la aplicación del límite temporal, el 31 de diciembre del año siguiente al de la operación.

Por otro lado, en el modelo 347, los sujetos pasivos que realicen operaciones a las que sea de aplicación el Régimen Especial del Criterio de Caja, suministrarán toda la información que vengan obligados a relacionar en su declaración anual, sobre una base de cómputo anual, sin que sea necesario su desglose trimestral.

Está claro, que todas estas obligaciones del RECC nos exigen un mayor control en nuestra gestión. Luego, será necesario adaptar nuestro sistema de gestión contable a estas nuevas actualizaciones y así poder evitar cualquier incidencia que pueda ocasionar problemas con hacienda.

Inconvenientes del Criterio de Caja

$
0
0

¿Conoces los inconvenientes del criterio de caja? El nuevo Régimen Especial de Criterio de Caja no termina de convencer a pesar de ser una de las medidas más demandadas. De hecho, se espera que muy pocas empresas opten por el nuevo régimen RECC: se calcula que, un 10% de las compañías aplicará el IVA de caja en 2014.

Tal y como explicábamos en artículos anteriores, este régimen especial del IVA de caja, cuenta con una serie de requisitos  y obligaciones que en la práctica pueden provocar que esta medida no sea tan deseable, a pesar de que muchos profesionales y autónomos podrían solventar sus problemas de liquidez.

Inconvenientes del Criterio de Caja

Inconvenientes del criterio de caja para PYMES y autónomos

De hecho, PYMES y autónomos que trabajan para grandes empresas están empeando a valorar si compensa ganar liquidez o perder clientes, ante la posibilidad de verse descartados como proveedores si aplican Régimen Especial del Criterio de Caja. Ya que, cuando una gran empresa, que no puede recurrir al criterio de caja, tenga como proveedor a una PYME que sí aplica el nuevo modelo, no podrá deducirse el IVA hasta que no realice el pago de la factura. Es decir, las compañías que no estén adscritas al nuevo régimen preferirán operar con otras empresas que tampoco apliquen el sistema de caja para evitar demoras en la deducción del IVA soportado.

Otro inconveniente del criterio de caja es que se tendrán que realizar los oportunos cambios en los sistemas de gestión, puesto que se tendrá que diferenciar en las cuotas de IVA aquellas que sí se han devengado y pagado o cobrado de aquellas que estén pendientes de pago. Estos cambios lo tendrán que realizar tanto las empresas que se suscriban al RECC como aquellas empresas se vean obligados por sus proveedores.

Además de todos estos inconvenientes, que parece que tiene este nuevo régimen de IVA, se tendrá que llevar un mayor control en su gestión y en su administración. Lo que conlleva a un incremento de papeleo y de los costes de gestión.

Por lo tanto, autónomos y empresarios deberán valorar en cada caso las ventajas e incovenientes del criterio de caja, y decidir si aplicarlo o no en su negocio.

SAP Netweaver 04 y NW 2004s: Diferencias

$
0
0

A primera vista puede parecer que la versión NW 2004s es una ampliación de la versión SAP Netweaver 04.  Sin embargo esto no es así.

A continuación se explican algunas de las principales diferencias entre SAP Netweaver 04 y NW 2004s:

Diferencia de Release

La primera versión de SAP Netweaver se distribuyó en 2004 y tomó el nombre de Netweaver 04. Posteriormente se lanzó el primer Support Release: SR1.

La versión de los componentes BASIS de NW04 es la 640 y soporta un kernel de la versión 6.40 o 6.40 EXT que permite instalar el sistema sobre las últimas versiones de base de datos de Oracle 11g.

La segunda versión de SAP Netweaver corresponde a la NW 2004s, que posteriormente fue denominada como SAP Netweaver 7.0. De esta versión se liberaron los SR1, SR2 y SR3.

La denominación 04s puede llevar a la confusión de que se trata de una actualización de NW2004, con componentes BASIS 640, pero realmente se trata de un cambio de release tanto de los componentes de BASIS, que pasan a ser 700 como de la versión de kernel que se actualiza a la versión 7.0.

En este caso las versiones de kernel 7.20 y 7.20 EXT son compatibles con la versión NW 2004s.

Estrategias de mantenimiento de SAP

A partir del año 2005, SAP decide simplificar la estrategia de lanzamientos y mantenimiento y adopta la estrategia de 5 años de mantenimiento general, 1 año de mantenimiento extendido con una tasa 2% y 2 años mantenimiento adicional con tasa del 4%.

Con la introducción del paquete Business Suit 7 esta estrategia cambia a un mantenimiento general de 7 años y 2 años de mantenimiento extendido.

Fechas de lanzamiento

Datos de lanzamiento y mantenimiento de Netweaver04

  • Release to Customer: 31/03/2004
  • General Availability: 01/01/2005
  • End of Mainstream Maintenance: 31/03/2010
  • End of Extended Maintenance: 31/03/2013

Datos de lanzamiento y mantenimiento de NW2004s

  • Release to Customer: 24/10/2005
  • General Availability: 06/06/2006
  • End of Mainstream Maintenance: 31/12/2017

Rutas de actualización a versiones en mantenimiento actuales

Las posibilidades de actualización de un sistema Netweaver 2004 pasan por las siguientes opciones:

Actualización SAP Netweaver 2004Para actualizar un sistema NW2004s se puede seguir la siguiente ruta:

Actualización de un sistema NW2004s

Se puede encontrar más detalle de posibilidades de actualización en la página de SAP.

Equivalencia ECC y NW

A modo de conclusión se puede indicar que la versión de SAP ECC 6.0 en cuanto a nivel de componentes BASIS es equivalente a Netweaver 7.0 y que SAP ECC 5.0 cuenta con componentes de SAP Netweaver 2004.

Error en disp+work al arrancar SAP Netweaver 7.4

$
0
0

El 10 de mayo de 2013 SAP lanzó la cuarta versión de SAP Netweaver: SAP Netweaver 7.4. Su instalación se realiza directamente con el nuevo software SAP Software Provisioning Manager (SWPM).

Tras una instalación aparentemente sin problemas, en un sistema operativo Linux con SAP kernel 7.40, el sistema no arranca y el proceso disp+work se queda en un status GRAY, Stopped:

Status GRAY, Stopped en proceso disp+workA continuación explicamos algunas opciones para solucionar este problema y conseguir arrancar el proceso disp+work y con ello finalizar la instalación de SAP Netweaver 7.4.

Arrancar SAP NW 7.4. deshabilitando el Firewall

Para intentar arrancar el proceso disp+work se ejecuta el comando IPTABLES con el que se pueden ver los puertos abiertos en el firewall.  Así y todo no se consigue arrancar el proceso.

iptables -L

Arrancar disp+work comando IPTABLES

Si se deshabilita el Firewall mediante el siguiente comando, el sistema arranca correctamente y permite el acceso mediante SAP Logon.

service IPTABLES STOP

Acceso SAP LogonSin embargo, deshabilitar el Firewall no es una práctica recomendada, dado que se vulnera la seguridad del sistema.

Arrancar SAP NW 7.4. configurando el tráfico multicast

La solución para poder arrancar el sistema SAP con el firewall activado, es asegurarse que el sistema soporta el tráfico multicast. Esto se consigue permitiendo el tráfico UPD añadiendo las siguientes reglas en el firewall, normalmente en el fichero /etc/sysconfig/iptables:

-A INPUT -i eth0 -p udp -d 224.0.0.0/24 -j ACCEPT
...
-A OUTPUT -p udp -d 224.0.0.0/24 -j ACCEPT

Como resultado las reglas del Firewall quedarán de la siguiente manera:

Reglas del Firewall para arrancar SAP Netweaver 7.4Tras asegurarnos de que se soporta el multicast, el sistema arranca sin problemas:

Arranque correcto del proceso disp+work SAP Netweaver 7.4.Para más detalles del problema se pueden consultar las siguientes notas de SAP:

1932555 – Dispatcher startup issue with SAP Kernel 740

1931675 – IP multicast configuration for dispatcher wakeup mechanism

Parametrización de componentes de coste dependientes en SAP

$
0
0

Una vez explicado en artículos anteriores cómo crear un componente de coste y cómo  asignarlo a los diferentes conceptos a tener en cuenta, en este artículo se explicará cómo configurar las dependencias entre componentes de coste y cómo crear diferentes escenarios de planificación de costes.

En la planificación de costes es posible crear componentes de costes dependientes de otros, pudiendo sumarizar varios componentes de costes en uno. A continuación veremos cómo parametrizar los componentes de costes dependientes de otros.

Crear dependencias entre componentes de coste

IMG: Gestión de personal – Planificación y simulación de costes de personal – Ejecución y planificación de costes – Tratar componentes de costes dependientes y adicionales

Seleccionamos el contexto de planificación y pinchamos en “Componentes dependientes de costes

Creación de componentes de coste dependientes en SAP

Mediante está tabla se pueden controlar tres aspectos fundamentales en la creación de componentes dependientes:

  • Qué componentes de costes dependen de qué otros.
  • De qué periodo del año se quiere recoger la información base que va a utilizar el componente dependiente.
  • En qué periodo del año se quiere crear el componente de coste dependiente.

En esta tabla se puede hacer que el importe calculado para un componente de coste se componga de la suma de otros componentes de coste cuyos importes han sido obtenidos de la tabla de resultados de nómina (RT) y en qué periodo del año queremos crear dicho componente de coste dependiente.

Por ejemplo: el componente de coste 1190 “Otros gastos de salarios y sueldos” va a ser un componente de coste dependiente con las siguientes características:

  • Dependiente del componente de coste 1310 “Gastos de empresa p. Seguridad Social” y  del componente de coste 1320 “Impuestos empresariales
  • Se toma la información de dichos componentes mes a mes.
  • Se genera el componente de coste 1190 todos los meses.

Generación del componente de coste 1190Seleccionando la opción “Ref.temp.simultánea” se toma como base el importe del componente de coste 1310 en el mismo periodo en el que se está generando el componente 1190.

En Enero se tomaría el valor del 1130 de Enero y así sucesivamente en los meses correspondientes.

Lo mismo ocurrirá para el componente de coste 1320:

creacion-del-componente-de-coste-dependiente-del-1320En próximos artículos se hablará sobre cómo asignar importes fijos a componentes de coste y cómo aplicar un porcentaje incremental a un componente de coste.

Web Dynpro Code Wizard: tutorial WD4A

$
0
0

En el siguiente tutorial vamos a hablar del Web Dynpro Code Wizard: la herramienta más útil para la programación en Web Dynpro.  Icono web dynpro wizard

El Web Dynpro Abap Code Wizard nos ayuda a generar código o elementos UI para diversas acciones cuyo desarrollo puede que sea complejo o simplemente a hacer más rápida la programación.

El botón del SAP Webdynpro Code Wizard está disponible tanto en la pestaña de Layout, como cuando estamos programando una acción o un método y dependiendo de la pestaña en la que nos encontremos, el wizard nos ofrecerá unas opciones u otras. En esta primera parte del tutorial sobre Web Dynpro Code Wizard nos centraremos en el Wizard del Layout.

Abap Web Dynpro Code Wizard de Layout

Al pulsar el botón del asistente en esta pestaña, nos ayudará a generar elementos UI en nuestra vista. Aquí existen tres diferentes opciones: screen, form y table.

WebDynpro Code Wizard de Layout: Opción SCREEN

La opción “Screen” del SAP WebDynpro Code Wizard permite replicar una pantalla que tengamos definida en un programa ABAP normal. Al seleccionarla, debemos elegir el programa y la Dynpro que queremos generar en WebDynpro.

Opción SCREEN del web dynpro code wizard de LayoutAl elegir un programa y una Dynpro, el WD Code Wizard nos generará los elementos UI que equivalen a los elementos que creados en la Dynpro ABAP seleccionada.

WebDynpro Code Wizard de Layout: Opción FORM

Con la opción “Form“, podremos crear un formulario a partir de los atributos de un nodo definido en el contexto. Al seleccionarla nos aparecerá la siguiente pantalla en la que se deberán establecer los siguientes aspectos:

Opción Form del Web Dynpro Code Wizard de Layout Lo primero será elegir el nodo del contexto del que queramos crear un formulario. Tras esto, nos aparecerán todos los atributos del mismo en la tabla de debajo.

  • En el primer desplegable que aparece, podemos elegir qué elemento UI por defecto queremos para nuestro formulario, y en el siguiente a qué propiedad se hará el binding.
  • En el recuadro de “Container Porperties” podemos elegir si queremos que nuestro formulario se cree en un nuevo contenedor, y el LayoutManager que se utilizará en él. También se puede indicar si queremos crear una cabecera para el formulario.
  • Por último, aparece una tabla con todos los atributos del nodo. En la segunda columna se puede elegir el tipo de elemento UI que queremos utilizar para cada atributo (inputField, checkBox, radioButton…). La casilla de la tercera sirve para decir si queremos crear un elemento UI con el atributo, y la tercera sirve para indicar a qué propiedad de elemento UI se va a hacer el binding con el atributo del nodo.

Una vez que tenemos todo definido en el Web Dynpro ABAP Code Wizard, al aceptar se nos crearán los elementos UI para el formulario.

WebDynpro Code Wizard de Layout: Opción TABLE

Si se elige la opción de crear una tabla, la pantalla que aparecerá será muy similar a la del formulario y las opciones que se mostrarán serán las mismas, exceptuando la de crear un contenedor para albergar el resultado. En este caso, sólo se pueden elegir nodos que tengan cardinalidad de 0…n ó 1…n. Su utilización es la misma que en el caso anterior.

Al aceptar las opciones en el WebDynpro Code Wizard, se nos creará un elemento UI Table, con las columnas que hayamos seleccionado. Si utilizamos el mismo nodo que en el ejemplo anterior, el resultado para una tabla sería el siguiente:

Opción TABLE del WebDynpro Code Wizard de Layout

Usar el Web Dynpro Code Wizard nos permite crear una tabla o un formulario una vez definido un nodo. Esto nos puede hacer ahorrar mucho tiempo y trabajo, ya que no tendremos que ir creando todos los elementos uno a uno, y haciendo su correspondiente binding a las propiedades.

En el próximo artículo comentaremos las opciones que el Web Dynpro Abap Code Wizard nos ofrece para generar código en las acciones y métodos del controlador.


Web Dynpro Code Wizard: tutorial WD4A (II)

$
0
0

En un artículo anterior comentamos el uso del Web Dynpro Code Wizard en la pestaña de Layout. En este, vamos a seguir hablando de cómo esta utilidad ayuda a generar código en los distintos métodos que queramos desarrollar.

Si estamos dentro del editor de código en modo modificar, al pulsar el botón del Web Dynpro Code Wizard nos aparecerá la siguiente ventana que nos da la opción de generar código para la utilización del contexto u otras utilidades generales.

Web Dynpro Code Wizard para la edición de código

Web Dynpro Code Wizard para tratar el contexto

La primera opción que nos ofrece el Web Dynpro Abap Code Wizard es crear código para la utilización del contexto. Lo primero que se debe hacer es elegir el nodo o atributo a tratar con el botón Web Dynpro Code Wizard para edición del contexto .

Al pulsarlo, nos aparecerá otra ventana con el contexto definido en el controlador que estamos modificando donde podremos seleccionar un nodo o un atributo concreto. El siguiente paso es elegir una de las tres acciones posibles a realizar sobre este:

  • Read: Esta opción genera el código necesario para poder leer el atributo o nodo seleccionado.
  • Set: Esta opción nos permite modificar el nodo o atributo seleccionado.
  • Append: Esta opción sirve para añadir líneas a un nodo. Sólo es posible utilizarla para nodos cuya cardinalidad es 0…n o 1…n. Con atributos no se puede seleccionar.

En todas las opciones anteriores, para los nodos que sean tablas (0…n ó 1…n), se puede seleccionar la casilla “As Table Operation”. Si no se marca, la acción sobre este tipo de métodos será sobre el elemento LeadSelection. En cambio, si se selecciona, la acción se realizará sobre la tabla de nodo. Para entenderlo algo mejor vamos a poner un ejemplo:

Imaginemos que tenemos un nodo de cardinalidad 1…n que guarda los datos de una tabla y que elegimos la opción “Read” sin la casilla “As Table Operation” marcada:

El código que nos generará el Web Dynpro Code Wizard será para poder leer la línea que esté seleccionada en la tabla, una solo línea. En cambio, si seleccionamos la casilla, el código generado por el Web Dynpro Abap Code Wizard, nos devolverá toda la tabla que almacena el nodo.

En resumen, las posibles opciones se muestran en la siguiente tabla:

Opciones sobre el contexto desde el Web Dynpro Code Wizard* En los nodos de cardinalidad 0…1 ó 1…1, el elemento leadSelection es el único que existe.

Web Dynpro Code Wizard: tutorial WD4A (III)

$
0
0

En artículos anteriores se ha explicado cómo utilizar el Web Dynpro Code Wizard tanto para la edición de Layout de una aplicación Web Dynpro como para la modificación del contexto. En esta tercera y última parte del tutorial sobre Web Dynpro Code Wizard vamos a explicar la funcionalidad de esta herramienta de SAP desde su pestaña “General“.

Web Dynpro Code Wizard: pestaña general

Al seleccionar la pestaña “General” mostrada al abrir el Web Dynpro Abap Code Wizard, son muchas las opciones que se pueden utilizar:

Web Dynpro Code Wizard: Pestaña general

  • Llamar a un método del controlador: Se puede elegir un método de los que tengamos definidos en el controlador que se está modificando. Esta opción creará una llamada a dicho método.
  • Llamar a un método de otro controlador: Misma utilidad que antes pero para elegir un método definido en otro controlador, cuyo uso esté relacionado con el controlador que estamos modificando. Para usar otros controladores, debemos ir a la pestaña de propiedades del controlador y añadirlos a la tabla “Used Controller/Components”.

Llamar a método de controlador desde Web Dynpro Code Wizard

  • Instanciar un componente: Si en la tabla anterior hemos hecho referencia a algún componente instanciable, esta opción del Web Dynpro Code Wizard nos genera el código para ello.
  • Comenzar navegación: Si tenemos definido algún plug en el controlador, esta opción nos genera el código para disparar el Outbound Plug que seleccionemos.
  • Generar mensaje: Si queremos mostrar algún mensaje por pantalla, lo primero es crear un manejador de mensajes, y luego llamar a un método del mismo. Con esta opción podemos hacer ambas cosas de un solo paso desde el Web Dynpro Abap Code Wizard.
  • Acceder a un símbolo de texto: Si tenemos definida una clase de asistencia en el componente Web Dynpro, podremos crear símbolos de texto. Esta opción nos escribe el código para acceder a los que ya tengamos definidos.
  • Generar Pop-Up: Mediante el Web Dynpro Code Wizard podemos crear una ventana emergente. Al elegirla, debemos elegir una ventana que ya tengamos definida en nuestro componente o en componentes utilizados.
  • Integración con el portal: en el caso de que nuestro Web Dynpro esté integrado en un portal web, esta opción nos muestra las acciones que podemos realizar con el portal SAP donde se está ejecutando nuestra aplicación.
  • Personalización: Desde aquí es posible elegir cualquier método de la clase IF_WD_PERSONALIZATION, que permite modificar o recuperar cualquier configuración o personalización en tiempo de ejecución.

Estas diversas utilidades del Web Dynpro Code Wizard nos permiten generar código que puede ser muy costoso de escribir o recordar cuando se está programando. En definitiva, ahorraremos bastante tiempo de programación si conocemos bien el uso de esta herramienta de SAP.

Parametrización SAP HR: Importe incremental de compontentes de coste

$
0
0

Los componentes de coste permiten estimar el incremento tanto porcentual como fijo que va a suponer dicho coste a lo largo de un periodo  (anual, mensual…).

Mediante la siguiente parametrización SAP HR se definirá que el componente de coste 1190Otros gastos de salarios y sueldos” tendrá un incremento en el año 2014 de un 20% con respecto al valor calculado en el año 2013.

Parametrización SAP HR incremento de costes

Para la parametrización del importe incremental de este componente de coste en SAP se realizarán los siguientes pasos:

  • Acceder a la ruta IMG: Gestión de personal – Planificación y simulación de costes de personal – Ejecución y planificación de costes – Especificar valores dependientes del escenario.
  • Seleccionar el contexto de planificación de costes. En el caso del ejemplo el escenario CP “Planificación de costes de personal”.

Parametrización del importe incremental de los costes de personal

  • Se selecciona el escenario. Los escenarios se definirán según las necesidades de cliente (Por ejemplo uno para la toma de datos de ejecución anual de planificación y otro escenario para los cálculos trimestrales de planificación)

Selección del escenario en la parametrización de importe incremental

  • Definir un porcentaje incremental de un 20% al componente de coste 1190 para el año 2014.

Parametrización del importe incremental de componentes de costeIncremento importe del componente de coste 1190

  • El campo “Agrupación organizativa” sirve para definir un agrupador para que según el tipo de empleado se tenga en cuenta ese componente de coste o no. Esta funcionalidad se controla mediante la característica “HCP02

Agrupación organizativa para componentes de costes

De esta forma cuando se lance el programa de planificación de costes si se elige el Contexto CP se tendrá en cuenta que se debe aplicar un 20% de incremento en el componente de coste 1190.

Una vez realizadas las parametrizaciones SAP HR de los artículos anteriores (creación de componentes de coste en SAP y parametrización de componentes de coste dependientes) y el del actual artículo, el sistema ya estaría listo para poder ejecutar el programa de planificación de costes de personal.

En próximos artículos se hablará sobre como ejecutar dicho programa de planificación de costes de personal, los resultados que se obtienen y como tratar dicha información.

Eliminar tablespaces Oracle vacíos tras Upgrade SAP

$
0
0

Tras finalizar correctamente una actualización de un Support Package stack o realizar un Upgrade SAP al sistema, es posible encontrarse con tablespaces en la base de datos Oracle que ya no son necesarios, pero que no se pueden eliminar por tener contenido.

Una solución a este problema, para poder reclamar el espacio ocupado en disco en un tablespace que no se utiliza y por tanto para eliminar tablespaces Oracle vacíos tras Upgrade SAP es la siguiente:

Al utilizar el SUM 10 SP6 o posteriores, no es posible eliminar el tablespace porque no está vacío y contiene unas tablas e índices con los siguientes nombres:

Borrar tablas e índices de tablespaces tras Upgrade SAP

La forma de realizar los Upgrades con una shadow instance implica hacer una clonación de la base de datos en un tablespace cuyo nombre finaliza con una letra X. Este se llama un exchange tablespace.

Para mover y reorganizar dichas tablas e índices en el nuevo tablespace, por ejemplo PSAPSR3702, se siguen los siguientes pasos:

  • En la transacción SE11 o SE13, cambiar el tipo de datos SSEXC al tipo de datos APPL0 para las tablas indicadas y activarlas.
  • Mover las tablas al tablespace correspondiente. Para ello se puede utilizar: SE14, ICNV o herramientas de BD (Brtools).

Una forma rápida de reorganizar el contenido de un tablespace en otro es utilizando la herramienta BRSPACE con los siguientes parámetros:

brspace -f tbreorg -s <source_tsp> -t "*" -n <target_tsp>

Una vez hecho esto, no hay ningún problema para eliminar el tablespace Oracle vacío. Incluso es posible realizar esta operación online con la base de datos levantada. Para ello se pueden utilizar las Brtools:

Borrar tablespace vacío tras Upgrade SAP

O directamente eliminar el tablespace Oracle desde el cliente sqlplus ejecutando:

SQL> DROP TABLESPACE <nombre_tsp>;

De esta forma se consigue optimizar el espacio utilizado por las bases de datos de nuestros sistemas SAP.

En el siguiente artículo se explicarán más posibilidades para optimizar el espacio ocupado por nuestras bases de datos. Para más detalles se pueden consultar las notas SAP OSS:

1715052 – Tablespace cannot be deleted after upgrade

1819182 – Tables (TTREE*) remain in old exchange tablespace

Redimensionar y mover tablespaces tras Upgrade SAP

$
0
0

En el artículo anterior, se explicaba cómo eliminar tablespaces  Oracle vacíos. Estos tablespaces se quedan en la base de datos tras un upgrade SAP o una actualización de un stack de parches en el sistema SAP. A continuación se explican otras posibilidades para optimizar el espacio de base da datos como redimensionar y mover tablespaces Oracle tras un Upgrade SAP.

Espacio de base de datos para Upgrade SAP

En ocasiones, el programa de actualización SUM solicita cierta cantidad de espacio en la base de datos para realizar la actualización/upgrade SAP. Debido a la metodología de utilizar una instancia shadow, una clonación de ciertos objetos de la base de datos original para realizar la actualización sobre esta shadow instance y así permitir minimizar el downtime además de aumentar la seguridad del proceso.

El programa de actualización SUM calcula el espacio requerido en la base de datos, por ejemplo un nuevo tablespace de 55GB o ampliar un tablespace existente con 6250MB. Si en los SAPDATAS (directorios de los data files de las bases de datos SAP de Oracle) actuales no hay espacio suficiente, hay varias opciones:

  • En instalaciones UNIX/Linux, ampliar los filesystems montados puede ser una tarea costosa por la estrategia de asignación de espacio.
  • En instalaciones Windows ampliar disco no suele ser una solución sencilla por la dificultad de redimensionar las particiones.

En las dos opciones anteriores recuperar el espacio después de asignado suele ser complicado:

Una opción sencilla y rápida es montar un recurso de disco compartido, por ejemplo: almacenamiento en NFS o servidor SAMBA y ampliar el tablespace sobre este espacio. De esta manera se puede continuar con el upgrade SAP.

Reducir tablespaces Oracle tras Upgrade SAP

En ocasiones, una vez finalizado el Upgrade SAP puede suceder que tras crear un tablespace de 55 GB sólo se utiliza el 35% del espacio requerido inicialmente por el SUM.

Ante esta situación es posible redimensionar los tablespaces Oracle, reduciendo el tamaño de los data files para recuperar parte del espacio asignado que no se utiliza. Una forma sencilla es utilizando el programa Brtools y la opción Space management -> Alter data file -> Resize data file:

Redimensionar tablespaces Oracle tras Upgrade SAPPara saber el espacio que se puede recuperar de los datafiles de un tablespace, se puede ejecutar de forma sencilla el siguiente script desde sqlplus e indicar el tamaño en que se pueden reducir los datafiles:

COLUMN block_size NEW_VALUE v_block_size
SELECT TO_NUMBER(value) AS block_size
FROM   v$parameter
WHERE  name = 'db_block_size';
COLUMN tablespace_name FORMAT A20
COLUMN file_name FORMAT A50
COLUMN current_bytes FORMAT 999999999999999
COLUMN shrink_by_bytes FORMAT 999999999999999
COLUMN resize_to_bytes FORMAT 999999999999999
SET VERIFY OFF
SET LINESIZE 200
SELECT a.tablespace_name,
       a.file_name,
       a.bytes AS current_bytes,
       a.bytes - b.resize_to AS shrink_by_bytes,
       b.resize_to AS resize_to_bytes
FROM   dba_data_files a,
       (SELECT file_id, MAX((block_id+blocks-1)*&v_block_size) AS resize_to
        FROM   dba_extents
        GROUP by file_id) b
WHERE  a.file_id = b.file_id
ORDER BY a.tablespace_name, a.file_name;

Reducir espacio base de datos tras Upgrade SAP

Mover tablespaces Oracle tras Upgrade SAP

Si se ha creado algún datafile en un almacenamiento temporal, como un recurso NFS montado en el sistema, o una unidad de disco diferente a la del resto de los ficheros de la base de datos, en caso de sistema operativo Windows, se pueden mover los datafiles desde la Brtools de manera sencilla con la opción del menú: Space management -> Move data file.

Se selecciona el datafile correspondiente:

Mover tablespaces tras Upgrade SAPEn el parámetro 3, se selecciona el sapdata de destino de manera sencilla:

Selección destino de tablespace tras Upgrade SAPDe esta manera se observa cómo cambia el comando SQL a ejecutar:

Comando SQL para mover tablespace tras Upgrade SAP

En cualquier caso antes de realizar un Upgrade SAP y posteriormente redimensionar o mover tablespaces Oracle se recomienda encarecidamente realizar un backup de la base de datos para poder volver a la situación anterior en caso de error.

Mantenimiento evolutivo de SAP HCM PSe en el Gobierno de Navarra

$
0
0

Asistencia técnica para migración de datos con origen o destino en sistemas SAP

En Oreka IT estamos de enhorabuena, ya que recientemente se ha ganado el concurso para realizar una Asistencia Técnica sobre SAP HCM PSe en el Gobierno de Navarra, ayudando a la Dirección General de Informática en el mantenimiento correctivo y evolutivo de su sistema, así como en la prestación de soporte a los usuarios finales.

Mantenimiento evolutivo SAP - Gobierno Navarra

Las principales funciones a desempeñar son la consulta, extracción, manipulación y carga de datos de sistemas SAP, desarrollo de código relacionado con el tratamiento de datos, construcción de aplicaciones y utilidades asociadas, participación en tareas de análisis y diseño y elaboración de los documentos previstos en la metodología de trabajo de la Dirección General de Informática y Telecomunicaciones (DGIT).

Oreka IT así mismo, presta soporte y asesoría concretada al menos en la atención a incidencias, cuando éstas son escaladas desde los procedimientos previstos en la estructura de soporte, escalado de dudas a SAP y otros fabricantes de software implicados y también impartición de formación, cuando se ponen en producción nuevas funcionalidades.

SAP HCM PY – Cómo modificar un esquema en SAP

$
0
0

El esquema de nómina en SAP se podría definir como “el programa” donde se realizan todos los cálculos de la nómina de un empleado. En el sistema SAP se pueden encontrar esquemas adaptados a la normativa de cada país. Estos esquemas y sus subesquemas serán modificados por los consultores de nómina SAP HCM PY para adaptarlos a los requerimientos de los clientes. En este artículo os voy a explicar cómo modificar los esquemas de SAP con SAP HCM PY; unos pasos muy sencillos pero no demasiado intuitivos.

Lo primero que tenemos que hacer, es entrar modificando al esquema de nómina o subesquema que se desea cambiar (Transacción PE01). Recordar que nunca se debe modificar el esquema estándar que te entrega SAP, si no que se realizará una copia del mismo que luego podremos romper a nuestro gusto.

Para modificar el esquema de nómina debemos distinguir dos partes: la línea de comando o el número de línea.

Modificando el esquema de nómina en SAP

La línea de comandos nos permite realizar acciones sobre el esquema completo, como buscar, reemplazar, grabar…   Podéis ver todas las opciones que tiene pulsando el botón F1. Yo por mi parte considero de utilidad la opción de imprimir: introducir “PRINT” en la línea de comando y obtendremos todo el esquema y sus subesquemas en un listado y con posibilidad de imprimirlo. Muy útil para poder guardarnos las modificaciones del esquema de nómina que tanto tiempo nos han costado.

Para trabajar con las líneas del esquema usaremos los cuadrados en los que se nos muestra su número de línea. Esta vez también el botón F1 nos recordará las opciones que tenemos. Las más habituales son:

  • D: Elimina una línea
  • DD…DD: Borrado de un bloque de líneas
  • I: Inserta una línea debajo
  • R: Copia una línea debajo
  • C: Copia una línea donde se indique (*)
  • CC…CC: Copia un bloque de líneas donde se indique (*)
  • M: Mueve una línea donde se indique (*)
  • MM….MM: Mueve un bloque de líneas donde se indique (*)
  • >: Desglose de un esquema
  • <: Comprimir un esquema

Los comandos marcados con (*) necesitan información de la línea destino donde se desea Copiar o Mover las líneas. Para ello escribiremos sobre el número de línea que va a ser nuestro destino y nos valdremos de uno de los siguientes comandos:

  • B: Inserta las líneas antes de la línea actual
  • A: Inserta las líneas después de la línea actual.

En las siguientes imágenes se muestra un ejemplo de cómo podemos mover un bloque de líneas. Se moverán las líneas [140 – 160] después de la línea 100.

Introduciremos el comando MM en la línea 140, indicando el comienzo del bloque y en la línea 160, indicando el final del bloque. Una vez se hayan introducido los dos comandos se pulsará el botón Intro.

SAP HCM - Esquema de nómina SAP modificado

Nos colocaremos ahora sobre la línea 100 e introduciremos la letra A, indicando así que el bloque se va a mover después de la línea 100.

Línea destino bloque de esquema de nónima SAP

Una vez pulsemos el intro podremos ver las modificaciones en nuestro esquema de nómina SAP:

SAP HCM - Esquema de nómina SAP modificado

Espero que estos consejos os sirvan de utilidad y ahorréis algo de tiempo en vuestras modificaciones utilizando SAP HCM PY.


Publicar Web Service SAP (1/2)

$
0
0

Publicar servicios web SAP puede ser la mejor solución a la hora de ejecutar funciones remotamente para obtener datos o resultados de SAP, y utilizarlos en otras aplicaciones externas, en un escenario en el que conviven un sistema SAP con otros entornos.

En este artículo dividido en dos partes explicaremos cómo publicar una función o grupo de funciones ABAP como un servicio web SAP. Además veremos cómo consumir un servicio web publicado en SAP desde otro entorno diferente.

Los servicios web permiten acceder y ejecutar un determinado código de forma remota desde cualquier sistema, independientemente de su plataforma y lenguaje de programación utilizando estándares como el protocolo HTTP, el protocolo SOAP y el lenguaje de programación XML.

Publicar una función como servicio web SAP

Para publicar un servicio web SAP a partir de una función, es necesario marcar esta como “Módulo de acceso remoto” en la pestaña de atributos en la transacción SE37.

Publicar servicio web SAP de una función

Una vez hecho esto, hay que publicar el servicio web SAP desde el menú Utilidades eligiendo la opción “Generar servicio Web” e indicando si se desea incluir en el servicio web el módulo de funciones concreto o todo el grupo de funciones.

Publicar función como servicio web SAP

Tras indicar esta opción se iniciará la ejecución de un asistente a través del que se establecerán las siguientes opciones de publicación del web service SAP: nombre del servicio web y descripción; funciones a incluir (si se ha optado por incluir el grupo de funciones); tipo de autenticación y nivel de seguridad y ubicación donde guardar el servicio web SAP.

Se puede elegir entre cuatro perfiles de autenticación y seguridad:

  • Alta: Autenticación con certificado y garantía de transporte (HTTPS)
  • Media: Autenticación con usuario y contraseña y garantía de transporte (HTTPS)
  • Baja: Autenticación con usuario y contraseña sin garantía de transporte (HTTP)
  • Ninguna: Sin autenticación ni garantía de transporte

Seguridad en Web Service SAP

Una vez establecidos todos los parámetros del servicio web SAP, aparecerá un resumen con la descripción del mismo: propiedades, visión interna, visión externa (puede variar si se realiza un mapeo de los nombres), tipos de datos, configuración e incluso el WSDL o descriptor del servicio web SAP publicado.

Sin embargo, con esto no será suficiente para consumir el servicio web SAP desde otro entorno: falta crear el binding correspondiente, mediante el que se definirá el formato del mensaje (SOAP) así como la localización del servicio web SAP completo.

En el siguiente artículo explicaremos cómo crear estos bindings y publicar el servicio web SAP definitivamente para su consumo desde otra aplicación.

Publicar Web Service SAP (2/2)

$
0
0

En el anterior artículo se vio cómo publicar servicios web en SAP a partir de una función o grupo de funciones. Sin embargo, quedó pendiente explicar cómo crear los bindings necesarios para completar el WSDL que describirá el servicio web SAP para su consumo desde otro entorno o aplicación externa.

Crear el binding para activar servicio web SAP

Mediante el binding se determina el formato de los mensajes y protocolos usados para el servicio web. En este caso vamos a publicar un servicio web SAP basado en el protocolo SOAP.

En SAP este paso se efectúa desde la transacción SOAMANAGER:

Crear binding para servicio web SAP

En el apartado “Web Service Configuration” hay que realizar una búsqueda del servicio web SAP a partir del nombre especificado durante su creación.

Existen tres categorías de búsqueda mediante las que se pueden filtrar los servicios web:

  1. Service Definition (publicar servicio web SAP)
  2. Consumer Proxy (consumir servicio web SAP)
  3. Service Group (grupo de servicios web SAP)

En este caso, filtramos por la primera categoría y seleccionaremos el servicio web a publicar pulsando el botón “Apply Selection” con lo que aparecerá un nuevo grupo de pestañas en la parte inferior.

Configuración servicio web SAP

En la pestaña “Configurations” hay que crear una nueva configuración para publicar el servicio web SAP seleccionado pulsando el botón “Create”. Con esto, aparecerá una ventana emergente en la que se solicitarán el nombre del servicio web, su descripción y el nombre del binding a crear.

Configuración binding servicio web SAP

A partir de estos datos, aparecerá un tercer grupo de pestañas en el que sólo quedará establecer los detalles de esta nueva configuración o binding:

  • Perfil de autenticación y seguridad correspondiente con lo establecido al crear el servicio web.
  • Versión SOAP: SOAP 1.1. o SOAP 1.2.
  • Mensajes

Para guardar la configuración y activar el servicio web SAP no hay que olvidar pulsar el botón “Save”. Una vez hecho esto, estará disponible el WSDL completo del servicio web SAP creado pulsando el enlace “Open WSDL document for selected binding on service”.

En el WSDL entre otros aspectos importantes se podrán obtener las rutas de las acciones (funciones SAP publicadas como servicio web SAP) y la localización del propio servicio web SAP.

WSDL del servicio web SAP publicado Después de publicar el servicio web SAP, con la información ofrecida por este fichero ya es posible consumir el servicio web SAP desde cualquier otra aplicación sea cual sea su plataforma y su lenguaje de programación.

SAP HR infotipo 0003: Modificar los campos bloqueados

$
0
0

El infotipo 0003 del módulo de Administración de Personal (PA) de SAP HCM, sirve para almacenar el status de la nómina y de la evaluación de tiempos de un empleado. A continuación se va a explicar qué opciones existen en el infotipo 0003, para modificar los campos bloqueados.

El infotipo 0003 almacena información importante cómo:

  • Fecha límite del cálculo de la nómina
  • Fecha de la modificación más temprana de los datos maestros: Si esta fecha es anteriovolver r al último cálculo de la nómina el sistema realizará una retroactividad para a calcular las nóminas que se puedan ver afectadas por los resultados.
  • Indicador de número de personal bloqueado.

SAP HR - Infotipo 0003

Este infotipo está protegido contra modificaciones para asegurar un correcto resultado de la nómina. De todas formas, SAP deja abierta una puerta para su modificación, aunque queda en manos del usuario asegurarse de los efectos de los cambios. Si aun así se desea modificar el infotipo 0003, se debe acceder a la transacción PU03 (o desde la transacción PA30 Utilidades -> Modificar status de nómina).

SAP HR - Modificar infotipo 0003

Aparecerá el infotipo 0003, pero ahora con los campos abiertos para modificarlos.

SAP HR - Infotipo 0003 - Modificación campos bloqueados

Eliminar bloqueos SAP

$
0
0

Las tablas de customizing de SAP sólo pueden ser modificadas por un usuario a la vez. Esto es debido a que están protegidas por bloqueos que no permiten la actualización simultánea de los datos. En ocasiones puede ser interesante eliminar bloqueos SAP, como por ejemplo en un curso de formación donde varios usuarios deben actualizar la misma tabla al mismo tiempo. En el siguiente artículo se muestra cómo se pueden desbloquear tablas SAP que hayan sido bloqueadas automáticamente por el sistema.

Para eliminar los bloqueos SAP sobre las tablas de customizing, y así poder acceder varios usuarios a modificar las mismas tablas hay que seguir los siguientes pasos:

1. Crear tabla de bloqueos SAP

En primer lugar, se debe crear una tabla de bloqueos SAP del diccionario para guardar qué mandantes están desbloqueados. La tabla debe tener la siguiente estructura:

Crear tabla de bloqueos SAP

En esta tabla, si el registro de un mandante tiene `X` el campo FLAG, querrá decir que en ese cliente existen bloqueos. Si por el contrario en el campo se pone el carácter ‘O’ no funcionará el bloqueo de tablas, por lo tanto dos o más usuarios podrán modificar simultáneamente la misma tabla.

2. Programas para bloquear/desbloquear tablas SAP

Se pueden crear dos programas, uno para bloquear y otro para desbloquear tablas SAP, que guardarán en la tabla anterior el estado del mandante donde se ejecute.

Desbloquear mandante SAP

Creamos un programa con el nombre ZSEQOFF y le pegamos el siguiente código:

TABLES: zenq.
DATA: off.
IF sy-mandt = '000'.
  MESSAGE 'Esta función no se permite en el mandante 000' TYPE 'A'.
ENDIF.
SELECT SINGLE FOR UPDATE * FROM zenq WHERE sysname = syst-sysid
                                     AND mandt = syst-mandt.
IF sy-subrc = 0.
  zenq-flag = 'O'.
  UPDATE zenq.
  IF sy-subrc = 0.
    off = 'X'.
  ELSE.
    off = ' '.
  ENDIF.
ELSE.
  zenq-sysname = syst-sysid.
  zenq-mandt = syst-mandt.
  zenq-flag = 'O'.
  INSERT zenq.
  IF sy-subrc = 0.
    off = 'X'.
  ELSE.
    off = ' '.
  ENDIF.
ENDIF.
IF off = 'X'.
  WRITE: / 'Desbloqueos desactivados (dependiente de mandante)'.
ELSE.
  WRITE: / 'Error al desactivar los desbloqueos'.
ENDIF.

Al ejecutar este programa, se crea o modifica un registro en la tabla con el nombre de la máquina y el cliente en el que se está ejecutando. A este registro se le pone en el campo FLAG de la tabla ‘O’, de manera que se eliminarán los bloqueos SAP automáticos.

Bloquear mandante SAP

Creamos un programa con el nombre ZSEQON y le copiamos el siguiente código:

TABLES: zenq.
DATA: on.
SELECT SINGLE FOR UPDATE * FROM zenq WHERE sysname = syst-sysid
                                     AND mandt = syst-mandt.
IF sy-subrc = 0.
  zenq-flag = 'X'.
  UPDATE zenq.
  IF sy-subrc = 0.
    on = 'X'.
  ELSE.
    on = ' '.
  ENDIF.
ELSE.
  on = 'X'.
ENDIF.
IF on = 'X'.
  WRITE: / 'Bloqueos activados (dependiente de mandante'.
ELSE.
  WRITE: / 'Error al activar los bloqueos'.
ENDIF.

Este programa tiene la misma funcionalidad que el programa anterior, con la diferencia que escribe ‘X’ en el campo FLAG del registro. Con ello se consigue que los bloqueos en el sistema se encuentren activados.

3. Modificar include

Para que los desbloqueos de las tablas SAP surtan efecto, es necesario modificar un include estándar. Para ello vamos a la transacción SE80 y elegimos el objeto de desarrollo LSENAF01. Para modificar un objeto estándar hay que registrar el objeto en SAP. En la línea 242, introducimos tras el código rc = SY-SUBRClas siguientes líneas:

IF syst-mandt <> '000'.
  DATA e_zenq TYPE zenq.
  SELECT SINGLE * FROM zenq INTO e_zenq
    WHERE sysname = syst-sysid AND mandt = syst-mandt.
  IF  e_zenq-flag = 'O'.
    rc = 0.
    EXIT.
  ENDIF.
ENDIF.

Este include se ejecuta cada vez que se intenta acceder a una tabla o vista de actualización de una tabla de customizing. Si el campo RC es distinto de 0, querrá decir que la tabla está bloqueada por algún usuario. Al introducir este código, leemos de la tabla el registro del cliente en el que nos encontremos, y si su campo FLAG está marcado, omitirá el aviso de que la tabla SAP se encuentra bloqueada.

Con estos pasos podremos hacer que las tablas de la SPRO no sean bloqueadas por un usuario, de manera que varios puedan modificarlas al mismo tiempo. Hay que tener cuidado con esto, ya que es algo peligroso ya que si dos usuarios modifican un mismo registro de manera inadecuada puede dar lugar a errores graves. Por lo tanto, se recomienda sólo eliminar bloqueos SAP en cursos y máquinas de formación, para poder agilizar el tiempo del curso.

Consumir servicio web SAP con PHP

$
0
0

Hace un tiempo publicamos dos artículos sobre cómo publicar un servicio web SAP. En esta ocasión, vamos a ver cómo consumir un servicio web SAP desde una plataforma completamente diferente como puede ser una aplicación web, concretamente cómo consumir un web service de SAP con PHP.

Realmente el método para consumir un servicio web con PHP es equivalente sea este un servicio web SAP o no. Tomamos el ejemplo de un servicio web SAP para dar continuidad a los artículos anteriores y ver cómo pasarle las credenciales de usuario.

Acceso al WSDL para consumir servicio web SAP

En primer lugar, a la hora de consumir un servicio web SAP o no SAP, debemos obtener los datos de este disponibles en su descriptor WSDL.

Tal y como vimos en el segundo artículo sobre publicar servicios web en SAP, desde la transacción SOAMANAGER se puede acceder al fichero WSDL del servicio web a consumir de donde es posible extraer las funciones disponibles desde ese servicio web y la manera en la que pueden ser accedidas.

Consumir web service SAP php

Cliente SOAP para consumir servicio web SAP

Para consumir un web service SAP, php es una buena opción ya que definiendo unas pocas líneas de código podemos acceder y utilizar funciones SAP desde una aplicación web.

En primer lugar se debe crear un cliente SOAP a partir de la URL del fichero WSDL del servicio web SAP y de la localización del servicio que se va a consumir.

$location_URL = 'http://ruta_sevicio_web.com/zlast_news2/100/zlast_news2/zb_last_news2';
$wsdl = 'http://ruta_servicio_web.com/wsdl/srvc_00505692214C1EE3B6D524ADE1ECD0F4/wsdl11/allinone/standard/document?sap-client=100?wsdl';

Para ello se crea una instancia de la clase SoapClient de PHP, indicando las opciones que correspondan en cada caso.

Según el nivel de autenticación indicado al crear el servicio web puede ser necesario la especificación de usuario y contraseña. Estos datos se han de pasar al crear el cliente SOAP y no al llamar a una acción. En realidad esta información se transfiere a través de la cabecera del mensaje SOAP. Por tanto, un ejemplo de cliente SOAP para consumir un web service SAP con PHP sería el siguiente:

$client = new SoapClient($wsdl, array(
			'location' => $location_URL,
			'uri'      => "",
			'trace'    => 1,
			'login'    => $usuario,
			'password' => $pass
			));

Consumir web service SOAP de SAP con PHP

Una vez disponemos del cliente SOAP creado en PHP, hay que llevar a cabo una llamada a la acción del servicio web SAP que se desee. En PHP existe un método propio de SoapClient que devuelve la lista de funciones disponibles en el servicio web: __getFunctions.

Suponiendo que la función que deseemos consumir del servicio web SAP sea ZNEWS_FM_GET_ULTIMAS_NOTICIAS la forma de llamarla y pasarle los parámetros de entrada necesarios es la siguiente:

try{
		$response = $client->ZNEWS_FM_GET_ULTIMAS_NOTICIAS(array("IM_NUM_NOTICIAS" => "5"));
		$xml = simplexml_load_string($order_return);
		foreach( $xml->children() as $child ) {
			echo $child->FECHA_CREACION;
		}
	}
	catch (SoapFault $exception){
		var_dump(get_class($exception));
		var_dump($exception);
	}

En la variable $response obtendremos el resultado de la llamada a la función que tendrá el formato indicado en el WSDL como mensaje de respuesta.

Una vez disponemos de la respuesta en PHP podemos extraer de esta los datos que deseemos y formatearla como sea conveniente en cada caso. Como se puede comprobar una vez se dispone del descriptor WSDL, es muy sencillo consumir un servicio web con PHP.

Viewing all 593 articles
Browse latest View live