Application Performance Management: Como rastrear el desempeño con Netsuite 2015.2

ANTECEDENTES

Cuando las opciones de configuración de Netsuite son insuficientes para cubrir los requerimientos de negocio, podemos realizar adecuaciones por medio de scripts y flujos de trabajo. Con ellos se pueden hacer una gran variedad de pasos adicionales y adecuaciones a las instalaciones de Netsuite, pero tienen un pequeño problema: normalmente entre más adecuaciones y scripts, el performance se puede ver afectar.

¿cuales se afectan y como?

En ese momento, las preguntas adecuadas son: ¿qué script tenemos? ¿que registros hay afectados? ¿cuales podemos optimizar? ¿cuáles son los más lentos?. En el pasado, tener estas respuestas no era sencillo. Si bien existía un monitor de aplicaciones, solo era básico y sobre ciertas aplicaciones concretas.

Application performance management con netsuite 2015.2

En la versión 2015.2 de Netsuite se ha liberado el bundle de Application Performance Monitor. Esto fue anunciado durante el evento de Suite World, 2015. Esta interesante herramienta nos permite monitorear en tiempo real el desempeño de prácticamente cualquier transacción, tiempos, medias, tiempos de carga, etc.

Aqui un ejemplo:

 

NEtsuite 2015.2 Application Performance.

NEtsuite 2015.2 Application Performance.

Mediante este monitor, podemos tener una mayor visualización e información respecto a que ajustar y como están siendo afectada la operación por las adecuaciones.

En el ejemplo anterior, podemos ver que tenemos un pico en los tiempos de respuesta de una transacción dada.

¿COMO PODEMOS AYUDAR?

NetSuite es una gran plataforma que configurada adecuadamente puede dar resultados extraordinarios en su negocio. En IMR contamos con la experiencia y conocimientos para apoyar el logro de sus objetivos.  Si necesita ayuda, por favor contactanos.

Consumir WebServices de NetSuite desde el navegador

Antecedentes

La integración entre uno o más sistemas siempre ha sido todo un tema, es común que al pensar en “Integracíon de sistemas” pensemos en archivos CSV o TXT, consultas SQL o directamente modificar la base de datos, otra opción es WebServices, cada día más presentes y mas potentes.

En estos tiempos donde la tecnología CloudComputing gana más terreno podemos probar un WebService sin tener que pasar por el dolor que impone la instalación de un lenguaje de programación, su IDE, sus librerias, etc, podemos probar directamente en WebService desde el navegador utilizando la pagina WSDL Browser

¿Que probar utilizar WSDL Browser?

Solo debemos ejecutar los siguientes pasos:

  1. Ir a la página web http://wsdlbrowser.com/
  2. Proporcionar la liga del WSDL a probar
  3. Presionar el botón Browse
  4. Elegir un método del panel izquierdo.
  5. Completar el request
  6. Presionar el botón Call function
  7. Esperar resultados.

Ejemplo en NetSuite: Consultar la existencia de artículos

  • WSDL:
  • https://webservices.netsuite.com/wsdl/v2015_1_0/netsuite.wsdl
  • Request
    <?xml version="1.0" encoding="UTF-8"?>
        <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:core_2015_1.platform.webservices.netsuite.com" xmlns:ns2="urn:messages_2015_1.platform.webservices.netsuite.com">
            <SOAP-ENV:Header>
                <ns2:login>
                    <ns2:passport>
                        <ns1:email>MI_USUARIO</ns1:email>
                        <ns1:password>MI_CONTRASEÑA</ns1:password>
                        <ns1:account>MI_CUENTA_DE_NETSUITE</ns1:account>
                        <ns1:role internalId="MI_ID_DE_ROL"/>
                    </ns2:passport>
                </ns2:login>
            </SOAP-ENV:Header>
            <SOAP-ENV:Body>
                <ns2:getItemAvailability>
                    <ns2:itemAvailabilityFilter>
                        <ns1:item>
                            <ns1:recordRef internalId="38"/>
                            <ns1:recordRef internalId="17"/>
                        </ns1:item>
                    </ns2:itemAvailabilityFilter>
                </ns2:getItemAvailability>
            </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>
    
  • Response
    <?xml version="1.0" encoding="utf-8"?>
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <soapenv:Header>
                <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2015_1.platform.webservices.netsuite.com">
                    <platformMsgs:nsId>WEBSERVICES_TSTDRV904452_06262015836892025729143836_4fe490de</platformMsgs:nsId>
                </platformMsgs:documentInfo>
            </soapenv:Header>
            <soapenv:Body>
                <getItemAvailabilityResponse xmlns="urn:messages_2015_1.platform.webservices.netsuite.com">
                    <platformCore:getItemAvailabilityResult xmlns:platformCore="urn:core_2015_1.platform.webservices.netsuite.com">
                        <platformCore:status isSuccess="true"/>
                        <platformCore:itemAvailabilityList>
                            <platformCore:itemAvailability>
                                <platformCore:item internalId="17" type="lotNumberedInventoryItem">
                                    <platformCore:name>CRMTMUSB</platformCore:name>
                                </platformCore:item>
                                <platformCore:lastQtyAvailableChange>2015-05-11T09:40:23.000-07:00</platformCore:lastQtyAvailableChange>
                                <platformCore:locationId internalId="2" type="location">
                                    <platformCore:name>DF</platformCore:name>
                                </platformCore:locationId>
                                <platformCore:quantityOnHand>1501.0</platformCore:quantityOnHand>
                                <platformCore:onHandValueMli>75050.0</platformCore:onHandValueMli>
                                <platformCore:quantityCommitted>0.0</platformCore:quantityCommitted>
                                <platformCore:quantityAvailable>1501.0</platformCore:quantityAvailable>
                            </platformCore:itemAvailability>
                            <platformCore:itemAvailability>
                                <platformCore:item internalId="17" type="lotNumberedInventoryItem">
                                    <platformCore:name>CRMTMUSB</platformCore:name>
                                </platformCore:item>
                                <platformCore:lastQtyAvailableChange>2015-05-11T09:34:19.000-07:00</platformCore:lastQtyAvailableChange>
                                <platformCore:locationId internalId="1" type="location">
                                    <platformCore:name>GDL</platformCore:name>
                                </platformCore:locationId>
                                <platformCore:quantityOnHand>82.0</platformCore:quantityOnHand>
                                <platformCore:onHandValueMli>10660.0</platformCore:onHandValueMli>
                                <platformCore:quantityOnOrder>0.0</platformCore:quantityOnOrder>
                                <platformCore:quantityCommitted>0.0</platformCore:quantityCommitted>
                                <platformCore:quantityAvailable>82.0</platformCore:quantityAvailable>
                            </platformCore:itemAvailability>
                            <platformCore:itemAvailability>
                                <platformCore:item internalId="38" type="lotNumberedInventoryItem">
                                    <platformCore:name>C-3102</platformCore:name>
                                </platformCore:item>
                                <platformCore:lastQtyAvailableChange>2015-04-14T14:14:39.000-07:00</platformCore:lastQtyAvailableChange>
                                <platformCore:locationId internalId="2" type="location">
                                    <platformCore:name>DF</platformCore:name>
                                </platformCore:locationId>
                                <platformCore:quantityOnHand>360.0</platformCore:quantityOnHand>
                                <platformCore:onHandValueMli>1440.0</platformCore:onHandValueMli>
                                <platformCore:quantityCommitted>0.0</platformCore:quantityCommitted>
                                <platformCore:quantityAvailable>360.0</platformCore:quantityAvailable>
                            </platformCore:itemAvailability>
                            <platformCore:itemAvailability>
                                <platformCore:item internalId="38" type="lotNumberedInventoryItem">
                                    <platformCore:name>C-3102</platformCore:name>
                                </platformCore:item>
                                <platformCore:locationId internalId="1" type="location">
                                    <platformCore:name>GDL</platformCore:name>
                                </platformCore:locationId>
                            </platformCore:itemAvailability>
                        </platformCore:itemAvailabilityList>
                    </platformCore:getItemAvailabilityResult>
                </getItemAvailabilityResponse>
            </soapenv:Body>
        </soapenv:Envelope>
    

Este es solo un ejemplo rápido, según los requerimientos de cada quien sería el request y el response, recuerda que cada empresa tiene sus propios necesarios, aún así con SuiteTalk, puedes resolver todos y cada uno.

¿Cómo podemos ayudar?

NetSuite es una gran plataforma que configurada adecuadamente puede dar resultados extraordinarios en su negocio. En IMR contamos con la experiencia y conocimientos para apoyar el logro de sus objetivos. Si necesita ayuda, por favor contactanos.