< Anterior | Próximo >

Criando um registro

Nesta lição, você aprende como criar um novo registro e especificar valores de campo do registro.
O exemplo de código nesta lição fornece um exemplo para permitir que um usuário crie um registro. Diálogos iniciais permitem que o usuário selecione o banco de dados no qual criar o registro e o tipo de registro a criar. Depois que o registro é criado, é apresentado o diálogo EditRecord ao usuário. Nesse diálogo, o usuário pode definir campos obrigatórios e opcionais e, em seguida, entregar o novo registro ao banco de dados.
    public static void main(String[] args)
    {
        try {
            CqProvider provider = Utilities.getProvider().cqProvider();
            Viewer viewer = new Viewer(provider);
            ResourceList<CqUserDb> databases = Utilities.getUserDbList(provider, null);
            CqUserDb userDb = (CqUserDb) JOptionPane
                .showInputDialog(null,
                                 "Escolher um Banco de Dados para o Novo Registro",
                                 "Criar Registro",
                                 JOptionPane.INFORMATION_MESSAGE,
                                 null,
                                 databases.toArray(new Object[] {}),
                                 databases.get(0));
    
            if (userDb == null) System.exit(0);
            
            userDb = (CqUserDb) userDb
                .doReadProperties(new PropertyRequest(CqUserDb.RECORD_TYPE_SET
                                                .nest(RECORD_TYPE_PROPERTIES)));
            
            // Leia a lista de todos os tipos de registros do banco de dados selecionado e 
            // remova dessa lista aqueles tipos de registros que não sejam enviáveis.
            ResourceList<CqRecordType> rTypes = 
                setUserFriendlyLocation(userDb.getRecordTypeSet());
            Iterator<CqRecordType> types = rTypes.iterator();
    
            while (types.hasNext()) {
                if (!types.next().getIsSubmittable())
                    types.remove();
            }
    
            // Apresentar a lista de tipos de registro enviáveis para o usuário para
            // seleção
            CqRecordType recordType = (CqRecordType) JOptionPane
                .showInputDialog(null,
                                 "Escolher o tipo de registro a criar",
                                 "Todos os tipos de registros em "
                                     + userDb.location().string(),
                                 JOptionPane.INFORMATION_MESSAGE,
                                 null,
                                 rTypes.toArray(new CqRecordType[] {}),
                                 rTypes.get(0));
    
            if (recordType == null) System.exit(0);
    

            // O nome real do novo registro é deteminado pelo
            // esquema. Tudo o que é necessário aqui é um local "sugerido"
            // que torne o registro um membro do tipo de registro especificado.
            CqRecord record = cqRecordType.cqProvider().cqRecord((StpLocation) recordType
                .getUserFriendlyLocation().child("new"));
            
            // Criar o registro. Não tente entregá-lo ainda, já que o campo obrigatório
            // pode precisar ser configurado pelo usuário antes da entrega
            // ocorrer.
            record = record.doCreateRecord(RECORD_PROPERTIES, CqProvider.HOLD);
            
            /*
             * Depois de entregar o registro criado para seu banco de dados, o
             * O diálogo EditRecord tentará exibi-lo novamente em seu próprio visualizador.
             * Nós precisamos criar este proxy "original" depois do fato
             * porque nós não temos um local válido para o novo registro até
             * depois de ele ter sido criado. Necessário usar o local estável
             * porque, em alguns casos, o local fácil e simples pode mudar
             * quando valores do campo forem alterados.
             */
            CqRecord selected = recordType.cqProvider()
                                    .cqRecord(record.getStableLocation());
    
            // Com o novo registro criado no contexto de mudança, o processo
            // prossegue da mesma maneira que na edição de um registro.             // Campos obrigatórios devem ser fornecidos pelo usuário e, em seguida, ele pode ser entregue.
            viewer.editRecord("Create Record ", record, selected)
                .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        } catch (Throwable ex) {
            ex.printStackTrace();
            Utilities.exception(null, "Create Record", ex);
            System.exit(0);
        }
    }
    
    /** As propriedades do tipo de registro lidas antes de criar um registro */
    final static PropertyRequest RECORD_TYPE_PROPERTIES =
        new PropertyRequest(CqRecordType.USER_FRIENDLY_LOCATION,
                            CqRecordType.IS_SUBMITTABLE,
                            CqRecordType.DISPLAY_NAME);
Após a criação de um novo registro, será possível executar outras operações nele usando o ClearQuest CM API. Por exemplo, é possível validar se o novo registro está no banco de dados do usuário executando uma consulta que retorne um novo registro no conjunto de resultados.

Ponto de verificação da lição

Agora você aprendeu como usar o ClearQuest CM API para desenvolver ações do aplicativo cliente que executam operações de criação em um banco de dados do usuário.
Nesta lição, você aprendeu o seguinte:
  • Sobre como usar o ClearQuest CM API para executar operações para a criação de novos recursos e valores da propriedade, como um registro e seus valores do campo em um banco de dados do usuário a partir de um aplicativo cliente.
< Anterior | Próximo >

Feedback