De import van de Blum cataloog gebeurt in drie stappen : 1. Import in een tijdelijk bestand van de Index tabel waar de beginletters van de korttekst staan en de pagina nummers D ##class(BL.Blum.Cataloog.ImportPDF).ReadIndexFile() 2. Import van de map met alle PDF's in een tijdelijk bestand, de bestandsnaam bevat de paginanrs D ##class(BL.Blum.Cataloog.ImportPDF).ReadPdfFiles() 3. Koppeling van de producten met de PDFs en opslaan in Res.ImageLink Eerst worden de oude gegevens uit Res.ImageLink verwijderd D ##class(BL.Blum.Cataloog.ImportPDF).LinkIndex2PDF() BL.EC.Common,Prod.Product,vhLib.Macro 1 %RegisteredObject,%XML.Adaptor right 192.168.1.15 PR BLUMCATPDF G CA %String %String Reads all Blum Catalog pdf's from a certain folder into a global global ^BlumCat("P"_Taal,PDFfileName)=$LB(startPgNbr,endPgNbr,nbrOfPages,fileSize) D ##class(BL.Blum.Cataloog.ImportPDF).ReadPdfFiles() 1 Queries the ^BlumCatalogPages(pdfFile) global to return a pdf filename to which a certain pageNbr belongs PageNbr:%String,Taal %String +$List(^BlumCat("P"_Taal,pdfFile),2))) Do . . . set res = pdfFile Quit res ]]> Reads the Blum Catalog index file and creates an Image link for each ShortText/pagenbr found D ##class(BL.Blum.Cataloog.ImportPDF).ReadIndexFile() 1 "_PrevPages) . . . If Language ="" Do ; Beide . . . . Set ^BlumCat("I"_"N",PrevProd)=List . . . . Set ^BlumCat("I"_"F",PrevProd)=List . . . Else Do . . . . Set ^BlumCat("I"_Language,PrevProd)=List . . Set PrevProd=Prod . . Set PrevPages=Pages If PrevProd'="" Do ; laatste verwerken . Set List="" . For I=1:1:$L(PrevPages,",") Set Nbr=$$TRIMN^vhRtn1($P(PrevPages,",",I)) Set:Nbr?1.3N List=List_$LB(Nbr) . Do WL^vhDBG(PrevProd_"->"_PrevPages) . If Language ="" Do ; Beide . . Set ^BlumCat("I"_"N",PrevProd)=List . . Set ^BlumCat("I"_"F",PrevProd)=List . Else Do . . Set ^BlumCat("I"_Language,PrevProd)=List ]]> D ##class(BL.Blum.Cataloog.ImportPDF).LinkIndex2PDF() 1 ",$$LCVT^vhLib(lbPRNr) . . For I=1:1:$LL(lbPRNr) Do // for each PRNr found for the product ShortText . . . Set PRNr = $List(lbPRNr,I) . . . Set lbPageNbrs = ^BlumCat("I"_Taal,ProdKey) . . . For J=1:1:$LL(lbPageNbrs) Do // for each PageNumber found for a certain productShortText/PRNr . . . . w:ProdKey="75T1550" ProdKey," ",PRNr," ",J,$List(lbPageNbrs,J),! . . . . set aPageNbr = $$$Trim($List(lbPageNbrs,J)) . . . . Quit:aPageNbrPageEnd . . . . set pdfFile = bl.GetPdfFileForPage(aPageNbr,Taal) // get the file name this page is in . . . . w:ProdKey="75T1550" pdfFile,! . . . . If pdfFile="" Do Quit . . . . . Do WL^vhDBG("*** file NOT found : "_ProdKey_" "_aPageNbr) . . . . . Set ^BlumCat("NOTFOUND"_Taal,aPageNbr,ProdKey)=$G(^BlumCat("NOTFOUND"_Taal,aPageNbr,ProdKey))+1 . . . . ;Do WL^vhDBG(ProdKey_" "_$P(^KPR(PRNr,0),"\")_" "_aPageNbr_" "_pdfFile) . . . . set PageCnt = $List(^BlumCat("P"_Taal,pdfFile),3) // get the number of pages in that pdf file . . . . set fileSize = $List(^BlumCat("P"_Taal,pdfFile),4) // get the size of the pdf file . . . . Do bl.CreateImageLink(PRNr,$Piece(pdfFile,"."),PageCnt,fileSize,ProdKey_"-"_aPageNbr,Taal) // Create the image link else do . //d WL^vhDBG("file not found") . Quit Quit ]]> Taal "CA" moet verwijderd worden er moet alleen met oorsprong gewerkt worden : PV 2008 &sql(OPEN RemoveBlumPDF) For &sql(FETCH RemoveBlumPDF) Quit:SQLCODE Do . Set PRNr=$P(ID,"||",2) . If '$D(^KPR(PRNr)) Do ##class(BL.Prod.ImageLink).DelObj(PRNr) Quit ; volledig verwijderen . ;W !,PRNr," ",$P(^KPR(PRNr,0),"\") . Set oImage=##class(Res.ImageLink).%OpenId(ID) . Quit:'$isObject(oImage) . Set oLink=oImage.Links.GetAt("P") . Quit:'$isObject(oLink) . Quit:oLink.Pad'["BLUM" . ;w " Delete" . Set oImage="" . Do ##class(Res.ImageLink).%DeleteId(ID) &sql(CLOSE RemoveBlumPDF) ]]> Create the actual image link for a Pdf file and it's thumbnail PRNr,pdfFile,PageCnt,FileSize,Opmerking,Taal ShortText:%String %List