cancel
Showing results for 
Search instead for 
Did you mean: 

Procedimiento de Autorizacion Ordenes de Compra

Former Member
0 Kudos

Buenas estimados amigos,

El motivo de la presente es para ver si me pueden ayudar con el siguiente tema, le he dado mucha cabeza y no logro llegar a ningún lugar espero me puedan ayudar.

Tengo el siguiente escenario:

En mi tabla OITM tengo artículos de inventario sellitem =u2019Yu2019 y activos fijos sellitem = u2018Nu2019, sucede que necesito crear un circuito de de autorización de orden de compra que cumpla las siguientes condiciones,

si es <= x que se cumpla la etapa A,

si es >=x1 y <=2 que cumpla la etapa B,

si es >= x3 que cumpla la etapa C,

Pero oen adicion a que se cumplan estas condiciones necesito también que identifique cuando el sellitem = u2018Nu2019 (osea que la orden de compra sea e activos fijos) que cumpla otro circuito de etapas, es un tanto complicado pero espero haber sido lo mas claro posible para que puedan entenderme.

Espero sus comentarios y gracias mil de antemano.

Gregorio Sanchez

Republica Dominicana

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member188440
Active Contributor
0 Kudos

Sabes trabajar con el stored procedure TransactionNotification??

Por como mencionas el requerimiento creo que seria muy util el TransactionNotification el cual mediante un error obligue al usuario a guardar el documento como preliminar, para que a su vez el usuario responsable lo autorice o lo cree segun sea el caso.

Former Member
0 Kudos

Hola Mauricio gracias por tomarte un tiempo y leer mi requerimiento,

te cuento que de esa forma no me resultaria factible ya que se ha desarrollado una herramienta que envia una alerta a los usuarios defiinidos en la etapa de autorizacion, si guardo mi orden de compra como preiliminar esta no pasaria por el cirtuito de autorizaciones y por lo tanto no le llegaria al outlook el correo de alerta avisando al usuario que una orden de compra esta en espera d su autorizacion.

Gracias anticipadas, quedo en espera de tus comentarios

former_member188440
Active Contributor
0 Kudos

OK ahora...

La comparacion de X <= a algo es en base a que??? al total del documento???

Podrias trabajar con una consulta que se me ocurre asi:

select 'True' from por1 a join oitm b on a.itemcode=b.itemcode where a.doctotal<=1000 and

b.qrygroup1 ='Y'

donde qrygroup es la propiedad que tienes activa.

Te pregunto lo de tu variable X para modificar el codigo para cada etapa

Former Member
0 Kudos

En mi caso X es un valor, pero creo que me podria funcionar con esta ultima que me acabas de decir aunque no lo tengo claro del todo, me indicas por favor que es 'TRUE'?

Gracias

former_member188440
Active Contributor
0 Kudos

Mira de hecho el TRUE no es mas que un texto, pero aparecera siempre y cuando se cumplan las condiciones del where.

Este es un query que nosotros utilizamos para los pedidos de cliente, es para los que el pedido de cliente (TOTAL) superan los 3 mil pesos


SELECT 'True' 
FROM OCRD T1
WHERE $[ORDR.DocTotal.number] >= 3000 And $[ORDR.CardCode] = T1.CardCOde And T1.GroupNum = 8

Date una idea de como serian las tablas

Former Member
0 Kudos

El query seria el siguiente

SELECT TRUE FROM OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode WHERE T0.[DocTotal] <= '1000' AND T2.[SellItem] = 'y'

lo voy a probar y te comentare si cumple mis requisitos.

Saludos

former_member188440
Active Contributor
0 Kudos

Me parece que asi no te funcionara pues el dato como tal no se ha grabado en la tabla OPOR u POR1

necesitas hacer uso de los campos



SELECT 'TRUE'  WHERE $[opor.doctotal] <= '1000' AND $[$38.1.0] in (select  itemcode from oitm where sellitem='Y')

Former Member
0 Kudos

Mauricio te comento, hice la prueba con el quey que prepare y al momento de crear la orden de compra me sale el siguiente error en la barra roja

" Could not commit Transaction"

Hice la prueba tambien con el que preparaste y este al momento de crear me deja pasar sin problemas, el circuito de autorizacion no esta funcionando.

Espero tus comentarios,

Gracias anticipadas.

former_member188440
Active Contributor
0 Kudos

.

former_member188440
Active Contributor
0 Kudos

Ya definiste tus etapas y modelos de autorizacion? el usuario con el que probaste creando el documento, si esta dentro de los modelos de autorizacion definidos?

Bueno y a todo esto , para que necesitas validar que los items sean sellitem ='Y' en un documento de compra???

si tienes items que unicamente se venden, entonces nunca te apareceran en un documento de compra

No comprendo bien ese caso.

Former Member
0 Kudos

si, las etapas y modelos de autorizacion estan creadas, incluso tambien entre con el usuario autor del documento, el que esta configurado en el modelo de autorizacion.

.....................

former_member188440
Active Contributor
0 Kudos

Pero, para que necesitas validar que los items sean sellitem ='Y' en un documento de compra???

si tienes items que unicamente se venden, entonces nunca te apareceran en un documento de compra

No comprendo bien ese caso.

Former Member
0 Kudos

los sellitems son mis articulos que puedo vender, en este caso telefonos (trabajo en una empresa de telecomunicaciones) los sellitems = 'N' son activos fijos que estos no se venden solo se compran pero estos por su origen deben pasar por circuitos de autorizaciones diferentes ya que el sellitem ='Y' (telefonos) pasa por el supervisor de inventario y el sellitem = 'N' (activo fijo) pasa por el supervisor de activos fijos, esta es la razon escencial del porque necesito separarlas en el documento de compra.

Saludos,

Former Member
0 Kudos

ambos son items de compras, pero solo uno es item de venta

former_member188440
Active Contributor
0 Kudos

Si pero a lo que me refiero es:

Si tienes un telefono que solo se vende entonces tendra la propiedad sellitem='Y' y éste articulo únicamente aparecera en documentos de venta (siempre y cuando no tenga PrchseItem='Y') No es necesario validar el item en un documento de compra. Ya que jamas se cumplira dicha condicion y el procedimiento nunca funcionara

Entonces sera necesario modificar el query para que valide si el item es de venta, pero tambien de compra entonces haga X accion (procedimiento)

De esta forma tendrias un procedimiento para items que solo sean de compra

y un procedimiento para items que son de ambos casos

Ahora que validacion se haria si tienes ambos casos en un mismo docto??

Former Member
0 Kudos

es lo que te digo, tanto el telefono como el activo fijo con articulos de compras, a los dos le hago una orden de compra para adquirirlo, pero solo uno de ellos es articulo de ventas por lo que utilizo el campo de sellitem como filtro para la separacion ya ambos cumplen con la condicion de que son articulos de compra.

former_member188440
Active Contributor
0 Kudos

Creo que entonces lo mejor seria utilizar el stored Transaction para validar esto y ademas crear una alarma basada en un query que haga la funcion de consultar las ordenes de compra que se acaban de crear, ésto quizas filtrado por el codigo de usuario.

El stored Procedure se encargaría como te comente al inicio del post, de mandar un error "a proposito" para que se guarde el documento como draft.

Con la alarma puedes hacer uso del correo electronico y avisar al responsable cuando se generen los documentos de ordenes de compra en draft

asi que seria algo asi

select docnum,createdate,cardcode,doctotal from odrf where objtype=22 and usersign not in ("numero_de_usuario")

Como ves?

Former Member
0 Kudos

ME GUSTARIA HACERLO MEDIANTE QUERY YA QUE NO ME GUSTA ENTRAR A LA DB Y MODIFICARLA HACIENDO STORE PROCEDURE, TENDRE QUE SEGUIR BUSCANDO ALTERNATIVAS..........................

former_member188440
Active Contributor
0 Kudos

mmmmm de hecho no estas haciendo algo no permitido por SAP

Solo es modificar el StoredProcedure en la parte donde dice ADD YOUR CODE HERE y ya, que para eso es.

Former Member
0 Kudos

si me indicas como hacer paso a paso tal vez me anime a hacerlo, es que le tengo pavor a tocar la db de sap

former_member188440
Active Contributor
0 Kudos

Checa esta liga, explica el funcionamiento del transaction

[url]http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e991e2b9-0901-0010-0395-ef5268b00aaf?QuickLink=index&overridelayout=true[url]