un lugar para desahogarse jejeje :P y contar experiencias laborales :), como profesional del área de TI, ADMOR de BD y freelance :D
viernes, 6 de mayo de 2011
Bloqueo de costos sap b1
Yo agregue el siguiente query que al momento de agregar el artículo o actualizar no me permitiera generar una orden de venta para no generar cola en facturación.
IF @object_type = '17' and @transaction_type IN ('A','U')
BEGIN
Declare @codigoitem nvarchar(20)
if exists (SELECT T1.[ItemCode]
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OITM T2 ON T1.ITEMCODE=T2.ITEMCODE
WHERE (T1.[price] <= T2.[avgprice])and (T0.docentry = @list_of_cols_val_tab_del)
BEGIN
SELECT @error = 1, @error_message = 'orden de venta con precio bajo de costo '
END
donde :
@object_type = documento donde se requiere el bloqueo.
@transaction_type=tipo de transaccion a add u update.
@list_of_cols_val_tab_del =línea verificada.
@error=error
@error_menssage=mensaje de error.
se pueden declarar variables dentro del transaction para mover información.
en mi query cualquier artículo que este dentro de la tabla RDR1(líneas de la orden de venta) será consultada para ver si su precio es mayor al costo del artículo dentro de la tabla OITM(avgprice) .
Espero que les pueda servir para darse una idea de lo que ustedes necesitan.
miércoles, 23 de febrero de 2011
Subir entradas/Salidas de inventario masivamente. SAP B1
yo utilice los templates de:
oInventoryGenEntry---Entradas
oInventoryGenExit --- Salidas
en mi caso no utilizo series ni lotes entonces solo utilice los templates de Documents y Document_Lines.
los datos de encabezado son los siguientes:
Recordkey Comments Series
y dentro del template de document_Lines
RecordKey LineNum AccountCode ItemCode WareHouses Quantity
Dentro de cabeceras la serie tiene que ir con el número relativo en la tabla de NNM1. y el AccountCode tiene que ir con su código Sys dentro de OACT.
Generalmente se utiliza una cuenta que se llama ajuste de inventarios, dependera del catálogo de cuenta.
martes, 1 de febrero de 2011
Iniciar nueva sociedad SAP B1
SISTEMAS (X ORDEN DIRECCION)
· parametrizaciones generales y por documento y su impresión.
· definir almacenes.
· definir usuarios.
· definir numeración de series para documentos, notas de créditos, facturas, ordenes de compra, ordenes de fabricación, etc. (importante).
· Definir grupos de artículos
· Definir tipos de pagos.
· Definir procesos de autorizaciones.
CONTABILIDAD
· plan de cuentas.
· determinación de cuentas de mayor.
· carga de saldos iniciales.
· periodos contables.
Carga TEMPLATE LAYOUT vía datatransferworkbench
Antes de iniciar la carga de el plan de cuentas debe de estar dado de alta la segmentacion de la misma dentro de gestión/definiciones/finanzas/segmentación de cuenta, si no te marcará un error de tipo y no dejará hacer la carga del plan de cuentas.
Code AcctCurrency ActiveAccount FatherAccountKey FormatCode Name null ## Y 1111010 111101101 Caja de Cheques (For ) null ## Y 1111021 111102101 Caja Efectivo (For )
miércoles, 6 de octubre de 2010
Autorizaciones dentro de SAP Business One con stored procedures
Dentro de un sistema de gestión es importante decir hasta donde podrá acceder el poder de un usuario. Dentro de nuestro ERP tenemos algunos modelos de autorización predefinidos. Dentro de Gestion/Procedimientos de autorización/modelos de autorización, éstos modelos deben de ser autorizados por usuarios superiores, estos se registran en una etapa de autorización la cual se crea agregando su nombre, que usuarios serán los autorizadores y de que departamento.
Para poder utilizarlo la condición debe de ser de vencimiento tipo indefinido,ratio mayor o igual y valor a 0.01
El stored procedure se invoca desde el query manager con código de SQL y se traspasa los datos requeridos con las variables de SAP.
y las variables se pasan al area de programación de sql dentro de la base de datos.
viernes, 2 de abril de 2010
HP LASERJET P1505 PROBLEMAS x TS

Mis máquinas de facturación son sumamente importante y tuve que sacar de combate a una lexmark E360DN que se me hacen en verdad muy buenas para la impresión en formatos media carta y preimpresos. Trabajando en SAP BO sobre RDP(remote desktop).
Tuve que comprar de emergencia una HP laserjet P1505 una pequeña pero funcional impresora de hp ( asi me la vendieron) mi sorpresa empezo que para cuando tuve que hacerla funcionar siempre es necesario instalar los drivers en mi servidor de impresión en el, valgame la rebuznancia, servidor de terminal server. Esto para que mi PC cliente, en el lugar remoto, pueda imprimir y mi servidor con su sesión de RDP pueda detectarla.
Para comenzar tuve que cambiar los drivers ya que no me imprimía, el driver tenia la version 1.0.5, creo y tuve que bajar la versión 7.0.5, con esto hice que imprimiera pero después de darme cuenta y mandar impresiones seguidas se tardaba una eternidad.
Entre sus características esta el imprimir 23 pmm (Páginas por minuto), y en lugar de eso cada 30 segundos me sacaba una, entonces estuve 2 dias intentando cambiar drivers, buscando en foros para ver si a alguien le había pasado el mismo problema, ver si algun drivers postscript o PCL me ayudaba, pero no,al contrario en mi pc de prueba ya no quizo funcionar. total que cuando estaba de cliente si sacaba inmediatamente las impresiones, pero decidí dejarla por la paz, a lo mejor después de hablar con el soporte habrá por ahí algun parche para esas impresoras, pero que curioso que tambien batalle con una HP laserjet 2300 hace tiempo, se corrigio con un driver postcript, será que HP tiene algun problema con el software de windows y sobre todo con el servicio de terminal, lexmark me ha gustado por que no he tenido problemas, pero aun así siempre dan problemas, ahora con regionalizaciones y que me cambien el firmware de algunas impresoras.
Vamos son problemas que vemos los Jefes o Gerentes o Encargados de sistemas.
Experiencia, a alguien le puede servir.
jueves, 31 de diciembre de 2009
AUMENTO IVA EN SAP B1
Nuestro partner nos envio un video de estos sencillos pasos y se los comento a continuación.
En primer lugar tenemos que abrir gestion/definiciones/finanzas/impuestos dentro del menu entraremos a clases de impuesto, tenemos que tomar en cuenta el impuesto acreditable y el impuesto por pagar, como veran el acreditable es para compras y el por pagar es por las ventas. Asi como también sus sinónimos, el cual tiene mi sistema, el IVA soportado y el IVA repercutido (vaya nombrecitos).
Nos dieron la sugerencia de meter nuevas cuentas dentro del catalógo de cuentas par que así dentro de la categoría de impuestos fiscales pudiéramos parametrizarlos.
dentro de las clases de impuesto seleccionamos el Repercutido y nos abre una ventana para agregar la tasa el código del mismo y sus cuentas, las cuentas como dije antes tienen que haber ya sido agregadas al catalogo. Cuenta de impuesto de ventas y cuentas de impuesto de compras, y esto se hace dentro de el IVA repercutido y dentro del IVA Soportado. Se da clic en actualizar.
pasamos a parametrizar los códigos fiscales, ahi ponemos el código del IVA, el cual se parametrizará en los clientes y proveedores. en la categoría fiscal seleccionamos los que ya dimos de alta anteriormente. y también validamos con una palomita si el impesto ingresado es para ventas o compras, o en su defectos ambos.
Parametrizamos el IVA dentro de gestion/definiciones/finanzas y en la pantalla de determinación de cuentas dentro de la pestaña de ventas/general el código de impuesto seleccionamos el de ventas.
Esto es por todo lo del ámbito contable.
Ahora, falta parametrizar los clientes, cada cliente tiene direccion de envió dentro de los datos maestros de socios de negocios. Cada dirección de envió parametriza un IVA de venta. Se le cambia el código fiscal, si el tipo de socio es cliente, en su defecto, al proveedor se le cambia dentro de la pantalla de datos maestros y la pestaña de finanzas en impuesto, ahi se cambia el indicador de impuesto.
Para hacer el cambio masivamente en clientes y proveedores tiene que usar la herramienta Datatransfer workbench. Lo que yo hice para no cambiar el record key por que sería laborioso, fue hacer una lista por línea de direccion de envio, así subiré varias listas por línea, y los clientes que tengan mas los cambiaré manualmente al final con un query de consulta que me diga cuales son los que quedaron sin cambiar el indicador. Los proveedores son sencillos, pero lo complicado de los clientes esta en cuantas direcciones de envio tienen.
Ahi les dejo esta pequeña reseña de lo que yo hice, espero les sirva.
domingo, 22 de noviembre de 2009
tips SAP BO
Un usuario mío tuvo un problema, quería hacer órdenes de compra y éstas no dejaban modificar los precios de los artículos, este mismo usuario también tuvo problemas para poder grabar sus documentos como preliminar.
En este caso es algo chistoso pues uno va en el apartado de gestión /autorizaciones y generalmente iremos al módulo de compras, pero, la solución no se encuentra ahí.
Para esto uno tiene que ir al apartado de ventas-clientes ahi encontrará el apartado documentos preliminar tiene que darle autorización total, así como modificar total de filas.
Lo escribo por que a veces buscamos y buscamos, sobre todo en las autorizaciones, mueves y mueves y no encuentras. Espero que les sirva.
jueves, 20 de agosto de 2009
Inventarios y MRP en SAP BO
MRP (Materials Requiriment Planning), en español, Planificación de Requerimientos de materiales, este módulo es importante para la previsión del inventario, la cual tomaremos en cuenta para producir y vender, esto, para mantener el stock y un buen nivel de producción.
En una empresa que se dedica a la compra-venta de mercancías, es muy indispensable mantener el stock de ciertos artículos, dado que los clientes generalmente buscan los negocios bien surtidos, baratos y de buen servicio.
Bueno la semana pasada la gerenta y yo estuvimos hablando acerca de como podría beneficiarnos el módulo, después de andar indagando como se utilizaba (pues de este módulo no me dieron capacitación suficiente) fuí capaz de medio explicarle como se utilizaba, pero por mi inexperiencia en el área de inventario y compras me trababa un poco, pero con su ayuda logré discipar ciertas dudas y bueno, esta semana que pusimos en marcha el sistema con la gente de compras todo quedo totalmente claro.
El módulo de MRP de SAP, lo estamos manejando como método para el abastecimiento de nuestros stock en momentos críticos como éste período que no se ve ni se divisa alentador en el mercado. Aparte de que nos han puesto tope para pedidos y de que éstos muchas veces no se ajustan a lo que realmente la clientela necesita. Necesitamos armas para poder abastecer los almacenes de tal manera que lo que se consuma pueda ser lo que salga.
Bueno para terminar el módulo consta de tres pasos:
1. previsiones: las previsiones son las ventas que tu crees a criterio que tendras en el horizonte de planificación.
2. Asistente de MRP. En el asistente tomas en cuenta todas tus variables: stock mínimo, pedidos u órdenes de compra, pedidos de clientes, facturas de reserva, previsiones, horizonte de planificación y stock en tus almacenes. Aparte dices que artículos vas a planificar en ese momento y si este se desplegará en grupo o artículo por artículo. Esto es tanto con producción y compras.
3. Recomendaciones de pedido. Ahi encontrarás las órdenes de compra que el sistema te esta sugiriendo pedir.
Aqui lo interesante no esta en como definir cada apartado, lo interesante es ver como funciona, jajaja, tuvimos que hacer como 5 o 6 intentos para ver los resultados que arrojaba y conforme se hacía uno saltaban y saltaban preguntas que yo sola no podía responder por mi ignorancia, no completa, pero ignorancia en ciertas procesos. Pero todo esto lo resolvimos entre la cabeza de gerenta y la encargada de compras. Y por supuesto y obviamente la mía, ejejeje :P
Pero bueno, la investigación me encanta, pero cada vez me doy cuenta que sé menos, y que el mundo solamente se conoce cuando te empiezas a preguntar, me gusta mi carrera por eso, por que apesar de ser ing. en sistemas puedes tratar cosas de administración, contabilidad, ciencia, y otras ramas mas, medicina...etc.etc.
Bueno, es todo.
martes, 11 de agosto de 2009
SP, TRANSACT SQL Y UDF AND VIEW...
Bueno empezaré por definir cada una de estas valiosas herramientas que trae SQL server 2005 dentro de ella.
STORED PROCEDURE. Este nombre se le da por ser procedimiento que se ejecuta dentro del motor de la base de datos, son muy efectivos para no sobrecargar la red cuando se ejecutan, ya que todo el resultado se envía al cliente y no sobrecarga la red con las operaciones de extracción y devolución de datos.
VIEWs: en mi definición las vistas son pequeñas tablas que se pueden generar apartir de las tablas principales de la base de datos. Éstas pueden ser utilizadas para tener reportes sin necesidad de un código extra y sin necesidad de disminuir el rendimiento del servidor al momento de ejecutarlos. Las vistas, según entendí yo, se estan actualizando continuamente con los procesos de consulta que se hacen a éstas. Pero a la par de ser ventaja esto viene tambien a disminuir también un poco al rendimiento de los procesos de update, delete, etc. de los registros. pues no solo escriben en la tabla principal, si no los datos se reflejan en las vistas.
UDF. User defined function. En español funciones definidas por el usuario, estas utilizan código de transact sql. Las funciones definidas por el usuario se crean con la instrucción CREATE FUNCTION, se modifican con la instrucción ALTER FUNCTION y se quitan con la instrucción DROP FUNCTION. Los nombres completos de las funciones definidas por el usuario (schema_name.function_name) deben ser únicos. Además de que en teoría dan mas rendimiento que las vistas.
Bueno, estos son algunos conceptos que en estos días he aprendido.
Ahorita estoy definiendo que es lo que tendré que hacer con un reporte que me arroje ventas reales por sucursal, familias de artículos y me arroje el promedio.
Ahora, el código que tengo es el siguiente:
declare @familia as varchar
set @familia=(select distinct(itmsgrpcod) from vtaxfam where itmsgrpnam='[%0]')
SELECT itemcode,sum(quantity) as 'total ventas', sum(quantity)/12 as 'total promedio'
FROM vtaxfam
WHERE itemcode IS NOT NULL and docdate>'2008/05/02' and docdate<'2009/05/31' and @familia=itmsgrpcod group BY itemcode Tengo que hacer unos joins o unas uniones para que me salgacomo quiero, pero ahi voy, trataré de entender bien como sacar esto. :) cuando lo haga lo posteo.