Scripts de objetos duplicados
Puede utilizar scripts de objeto duplicados para realizar acciones cuando se duplican objetos. Por ejemplo, puede utilizar un script de objeto duplicado para duplicar un objeto hijo personalizado al duplicar objetos.
Un script de objeto duplicado es un tipo especial de script de automatización sin un punto de ejecución. El nombre del script debe tener el formato OBJECTNAME.DUPLICATE o OBJECTNAME.AFTERDUPLICATE. Por ejemplo, si desea crear un script para utilizarlo para una orden de compra (OC), debe llamarlo PO.DUPLICATE.
Al utilizar los sucesos .DUPLICATE y .AFTERDUPLICATE , controla la lógica que se produce cuando se duplican los registros. Los ejemplos siguientes son escenarios en los que se puede utilizar esta función.
- Para eliminar valores que no se pueden omitir durante la duplicación.
- Para mantener una referencia entre dos registros.
- Para copiar otros objetos hijo que pueden no manejarse de forma predeterminada, por ejemplo, objetos personalizados.
La diferencia entre .DUPLICATE y .AFTERDUPLICATE es cuando se desencadena el código.
.DUPLICATE se produce en el método de objeto de negocio (MBO) de Maximo ® para copiar el registro. En cualquier momento en que duplicate() o copy() se invocan en el MBO, incluyendo dentro de un script de automatización o integración, se ejecuta el script .DUPLICATE . Este script se ejecuta antes de que se copien los conjuntos de datos hijo, como DOCLINKS o POLINES. Si necesita modificar estos conjuntos de datos hijo después de copiarlos, debe crear un script que se denomine para el conjunto de datos hijo, como por ejemplo POLINE.DUPLICATE. O bien, puede utilizar el suceso .AFTERDUPLICATE .
.AFTERDUPLICATE se maneja en la clase DataBean que se amplía desde la interfaz de usuario no basada en Graphite y la acción de la API REST para duplicar un registro. Otros sucesos que normalmente hacen que se duplique un registro, como llamar a mbo.duplicate() dentro de un script de automatización, no hacen que este script se ejecute. Esta limitación es importante para determinar si se puede utilizar este suceso. .AFTERDUPLICATE se produce después de que se produzca toda la lógica de la duplicación. Por ejemplo, si la función duplicate() de un MBO copia en conjuntos de datos hijo, estos conjuntos de datos hijo se copian cuando se ejecuta .AFTERDUPLICATE .
| Nombre de variable | Descripción |
|---|---|
| MBO | El registro MBO original que se ha duplicado. |
| dupmbo | El nuevo registro MBO. |
# Clear out existing values
dupmbo.setValueNull("ASSETNUM")
# Copy custom object set into new record
# NOTE: You most likely would need to update the values that point to your record,
# such as WONUM, to the new record.
origChildSet=mbo.getMboSet("MYCUSTOMRELATIONSHIP")
origChildSet.copy(dupmbo.getMboSet("MYCUSTOMRELATIONSHIP"))