Caros,
Estou passando por um problema ao tentar realizar o check-in de um documento retirado de uma biblioteca de documentos do Sharepoint 2007 e importa-lo para a mesma biblioteca porém migrada para Sharepoint 2010, segue o cenário abaixo:
•Tenho uma bliblioteca de documentos onde o usuário pode subir diversos documentos para o Sharepoint de uma vez e alterar suas propriedades
•Após editar as propriedades o usuário solicita através de uma ação importar os documentos
•Os documentos são então validados de acordo com as regras de negócio e se passarem na validação são importados para uma outra bliblioteca de documentos do Sharepoint
•Nesta outra biblioteca abro o mesmo pelo Word realizando check-out
•Ao realizar check-in do documento a mensagem "Este documento não pode ser salvo pois algumas propriedades estão ausentes ou não são válidas"
•Verificando na barra de propriedades do documento nenhum dos campos é obrigatório
Até o momento já fiz os seguintes testes porém sem nenhum resultado:
•Troquei todos os campos das listas para Opcionais
•Removi a opção de oculto dos campos
•KB da Microsoft que sujere realizar o procedimento botão do office > preparar > inspecionar documento >inspecionar > remover tudo
•Consigo realizar o check-in se realizar o check-out pela lista, abrir o documento e salva-lo e depois realizar check-in pela lista novamente
Abaixo segue o código utilizado:
SPFile novoRequisito = aplicacaoFolder.Files.Add(codigoRequisito + extensaoRequisito, requisito.File.OpenBinary(), true);
SPListItem novoRequisitoItem = novoRequisito.Item;
novoRequisito.Item["ContentType"] = ctype.Name;
novoRequisito.Item["ContentTypeId"] = ctype.Id;
//Atribuir propriedades
novoRequisito.Item["Código do Requisito"] = codigoRequisito;
novoRequisito.Item["Título"] = codigoRequisito + " - " + nomeRequisito;
novoRequisito.Item["Nome do Requisito"] = nomeRequisito;
novoRequisito.Item["Tipo de Requisito"] = requisito["Tipo do Requisito"];
novoRequisito.Item["Atividades Relacionadas"] = requisito["Atividades Relacionadas"];
novoRequisito.Item["Propósito"] = requisito["Propósito"];
novoRequisito.Item["Situação"] = "Desenvolvimento";
novoRequisito.Item["Nível de Realização"] = requisito["Nível de Realização"];
novoRequisito.Item["Complexidade"] = requisito["Complexidade"];
novoRequisito.Item["Linha-base"] = aeListItem.ID + ";#" + aeListItem.Title;
novoRequisito.Item["Projeto"] = projeto["Nome Abreviado"];
novoRequisito.Item["Código do Projeto"] = projeto.ID;
novoRequisito.Item["Assinante"] = tenantName;
//Atualiza o arquivo
novoRequisito.Item.Update();
novoRequisito.Update();
novoRequisito.CheckIn("", SPCheckinType.MajorCheckIn);
novoRequisito.Approve("");