Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2006
    Messages : 8
    Points : 4
    Points
    4

    Par défaut API Content Manager 8.3 C++, création de DKDDO

    Bonjour,

    Avant toute chose, j'espère être dans la bonne zone concernant mon problème.

    Je viens vers vous parce que je me prend la tête sur un problème avec les API IBM Content Manager 8.3 et impossible de trouver de la documentation pour la version C++ des API, j'espère que l'un d'entre vous connait un peu le sujet (J'espère parce qu'on est pas nombreux en France)

    Le but rechercher est d'injecter un document au format DKDDO dans la base de données de Content. Tant que le document se limite à un ICMBASE avec des attributs, tout va bien, j'y arrive, je sais faire.

    Le problème survient quand je dois injecter un document contenant un ICMBASE, un ICMNOTELOG et un ICMANNOTATION. Je pense que je ne forme pas proprement le DKDDO avant de l'insérer dans Content Manager.

    Voici mon code qui me sert à l'injection :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    for(int i = 0; i < Image; i++)
    	{
    		pExtFile = GetMimeType(FileNames[i]);
    		if(strcmp(pExtFile, "dkparts/dkannotation") == 0)
    		{
    			printf("ANNOTATIONS %s!\n", FileNames[i]);
    			/*try
    			{
    				part = (DKLobICM *)dsICM->createDDO("ICMANNOTATION", DK_ICM_SEMANTIC_TYPE_ANNOTATION);
    				//Est ce pertinent de mettre une mime type? Je ne pense pas !
    				//part->setMimeType (GetMimeType(FileNames[i]));
    				//Par contre, on doit mettre le contenu dedans
    				part->setContentFromClientFile(FileNames[i]);		//Recommande par IBM
    			}
    			catch(DKException &exc)
    			{
    				ErrNonI +=1;
     
    				fprintf(LogFile, "Erreur Ddo Annotation\n");
    				fprintf(stderr, "Erreur Ddo Annotation\n");
    				ShowErr(exc);
     
    				return(ERR);
    			}*/
    		}
    		else
    		{
    			if(strcmp(pExtFile,"dkparts/notelog") == 0)
    			{
    				try
    				{
    					printf("Notelog %s!\n",FileNames[i]);
    					part = (DKLobICM *)dsICM->createDDO("ICMNOTELOG", DK_ICM_SEMANTIC_TYPE_NOTE);
    					printf("Contenu !\n");
    					part->setContentFromClientFile(FileNames[i]);	
    					printf("On a réussi !\n");
    				}
    				catch(DKException &exc)
    				{
    					ErrNonI +=1;
     
    					fprintf(LogFile, "Erreur Ddo Notelog\n");
    					fprintf(stderr, "Erreur Ddo Notelog\n");
    					ShowErr(exc);
     
    					return(ERR);
    				}
    			}
    			else
    			{
    				try
    				{
    					printf("Part %s !\n",FileNames[i]);
    					part = (DKLobICM *)dsICM->createDDO("ICMBASE", DK_ICM_SEMANTIC_TYPE_BASE);
    					printf("MimeType !\n");
    					part->setMimeType (GetMimeType(FileNames[i]));
    					printf("Contenu !\n");
    					part->setContentFromClientFile(FileNames[i]);		//Recommande par IBM
    					printf("On a réussi !\n");
    				}
    				catch(DKException &exc)
    				{
    					ErrNonI +=1;
     
    					fprintf(LogFile, "Erreur Ddo Basique\n");
    					fprintf(stderr, "Erreur Ddo Basique\n");
    					ShowErr(exc);
     
    					return(ERR);
    				}
    			}
    		}
    		try
    			{
    				dkParts->addElement((dkDataObjectBase*)(DKDDO*)part);
    			}
    			catch(DKException &exc)
    			{
    				ErrNonI +=1;
     
    				fprintf(LogFile, "Erreur Part\n");
    				fprintf(stderr, "Erreur Part\n");
    				ShowErr(exc);
     
    				return(ERR);
    			}
    	}
     
     
      try
      {
    	printf("Le ddo est pret, on l'ajoute");
        ddo->add();
    	printf("Le ddo est OK, on le sauvegarde");
        ddo->update();
      }
      catch (DKException &exc)
      {
        ErrNonI += 1;
     
        fprintf (LogFile, "Erreur Add\n");
        fprintf (stderr,  "Erreur Add\n");
        ShowErr (exc);
     
        return (ERR);
      }
    Pour le moment, l'injection de l'annotation n'est pas finit donc commenté, mais même avec un simple Notelog, on part aux fraises.
    Actuellement, on finit de le catch suite à l'instruction en erreur ddo->add.

    Ma question est donc :
    Quelqu'un a-t-il un exemple qui marche d'injection de notelog via les API, et/ou un exemple d'annotation (avec prise en compte des Annotation.ulPart, Annotation.ulPageNumber, Annotation.usX, Annotation.usY)?
    Quelqu'un aurait-il réussi à dénicher la documentation C++ des API sur le site d'IBM, ou celle-ci sont perdu corps et bien?

    Je vous remercie d'avance de vos suggestions.

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : décembre 2006
    Messages : 8
    Points : 4
    Points
    4

    Par défaut

    Je repasse sur ce sujet par hasard donc j'apporte la réponse.

    La documentation C++ des api content se trouve ici => http://publib.boulder.ibm.com/infoce...2Ficmprmst.htm

    Et la réponse m'est venu d'IBM :
    Il est impossible d'insérer des annotations via les API en C++, cela ne marche pas, c'est tout

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •