IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

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


Sujet :

Bibliothèques

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    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.

Discussions similaires

  1. c'est quoi un CMS(Content Management System)
    Par lykim dans le forum Débuter
    Réponses: 6
    Dernier message: 01/12/2007, 01h13
  2. Content Management System
    Par Hug0_76 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/10/2007, 16h33
  3. [EJB2.1 Entity] Rôle du CMP (Content Management Persistence) ?
    Par LESOLEIL dans le forum Java EE
    Réponses: 8
    Dernier message: 01/12/2005, 20h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo