Bonjour à tous,
Je développe actuellement une application permettant de rafraichir des états bo 4 en Java. Tout ce passe bien mais lorsque j'appel la méthode setPrompts, j'obtient une erreur NullPointerException et je ne vois pas du tout d'où cela peut provenir.
Voici mon code :
et voici l'erreur générée :
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 IEnterpriseSession i = new IEnterpriseSession() {...}; String username = "admin"; String pwd = "mypassword"; String cmsname = "172.xx.xx.xx"; String authtype = "secEnterprise"; i = CrystalEnterprise.getSessionMgr().logon(username, pwd, cmsname, authtype); ReportEngine r = new ReportEngine() {...}; r = (ReportEngine) i.getService("", "WebiReportEngine"); IInfoStore iis = (IInfoStore) i.getService("", "InfoStore"); String sq = "select si_id,si_name,si_parentid from ci_infoobjects where si_kind in ('CrystalReport','Webi') and si_instance=0 and si_name = 'ST1205_1'"; IInfoObjects iObjects = iis.query(sq); IInfoObject iObject = null; for (int k = 0; k < iObjects.size(); k++) { iObject = (IInfoObject) iObjects.get(k); System.out.println("ID TROUVE : " + iObject.getID()); DocumentInstance d; d = r.openDocument((int) iObject.getID()); Prompts p; p = d.getPrompts(); String[] lelab = new String[1]; lelab[0] = "3089"; String[] ledep = new String[1]; ledep[0] = "CO"; String[] ladatedeb = new String[1]; ladatedeb[0] = "01/12/2015 00:00"; String[] ladatefin = new String[1]; ladatefin[0] = "28/12/2015 23:59"; System.out.println("valeur : " + ladatefin[0]); System.out.println(p.getCount()); Prompt prompt = p.getItem(0); System.out.println("Prompt name : " + prompt.getID()); prompt.enterValues(ladatedeb); Prompt prompt1 = p.getItem(1); System.out.println("Prompt name : " + prompt1.getID()); prompt1.enterValues(ladatefin); Prompt prompt2 = p.getItem(2); System.out.println("Prompt name : " + prompt2.getID()); prompt2.enterValues(ledep); Prompt prompt3 = p.getItem(3); System.out.println("Prompt name : " + prompt3.getID()); prompt3.enterValues(lelab); System.out.println(prompt.getCurrentValues()[0]); System.out.println(prompt1.getCurrentValues()[0]); System.out.println(prompt2.getCurrentValues()[0]); System.out.println(prompt3.getCurrentValues()[0]); d.setPrompts(); // erreur pointeur null ici !! d.refresh(); }
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Exception in thread "main" java.lang.NullPointerException at com.sap.sl.common.impl.FieldImpl.setDateTime(FieldImpl.java:246) at com.businessobjects.rebean.wi.internal.dp.prompt.FormatNumberHelper.formatStringToField(FormatNumberHelper.java:140) at com.businessobjects.rebean.wi.internal.dp.prompt.WIPrompt.prepareAnswers(WIPrompt.java:157) at com.businessobjects.rebean.wi.internal.dp.prompt.WIPrompts.provideAnswers(WIPrompts.java:99) at com.businessobjects.rebean.wi.internal.WIDocumentInstance.setPrompts(WIDocumentInstance.java:627) at macrobo4.MacroBO4.main(MacroBO4.java:580) C:\Users\muser\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 38 seconds)
Partager