Scripts de objeto duplicados
É possível usar scripts de objeto duplicados para executar ações quando os objetos são duplicados Por exemplo, é possível usar um script de objeto duplicado para duplicar um objeto-filho customizado ao duplicar objetos
Um script de objeto duplicado é um tipo especial de script de automação sem um ponto de ativação O nome do script deve estar no formato OBJECTNAME.DUPLICATE ou OBJECTNAME.AFTERDUPLICATE Por exemplo, se você desejar criar um script para usar para uma ordem de compra (PO), deverá chamá-lo de PO.DUPLICATE.
Usando os eventos .DUPLICATE e .AFTERDUPLICATE , você controla a lógica que ocorre quando registros são duplicados. Os exemplos a seguir são cenários em que essa função pode ser usada:
- Remover valores que não podem ser ignorados durante a duplicação.
- Manter uma referência entre dois registros.
- Para copiar outros objetos-filhos que podem não ser manipulados por padrão, por exemplo, objetos customizados
A diferença entre .DUPLICATE e .AFTERDUPLICATE é quando o código é acionado.
.DUPLICATE ocorre no método Maximo ® Business Object (MBO) para copiar o registro. A qualquer momento, duplicate() ou copy() são chamados no MBO, incluindo dentro de um script de automação ou integração, o script .DUPLICATE é executado. Este script é executado antes de quaisquer conjuntos de dados filhos, como DOCLINKS ou POLINES, serem copiadas Se for necessário modificar esses conjuntos de dados filhos após eles serem copiados, será necessário criar um script nomeado para o conjunto de dados filho, como POLINE.DUPLICATE. Ou é possível usar o evento .AFTERDUPLICATE .
O .AFTERDUPLICATE é manipulado na classe DataBean que é estendida da interface com o usuário não baseada em Graphite e da ação da API REST para duplicar um registro. Outros eventos que geralmente fazem com que um registro seja duplicado, como chamar mbo.duplicate() dentro de um script de automação, não fazem com que esse script seja executado. Essa limitação é importante para determinar se esse evento pode ser usado. .AFTERDUPLICATE ocorre após toda a lógica para duplicação ocorrer. Por exemplo, se a função duplicate() de um MBO copiar em conjuntos de dados filhos, esses conjuntos de dados filhos serão copiados quando .AFTERDUPLICATE for executado.
| Nome da Variável | Descrição |
|---|---|
| MBO | O registro de MBO original que foi duplicado |
| dupmbo | O novo registro de 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"))