Using the result of a jms webservice
When I have deployed my simple HelloWorld webservice, I obviously want to write
a client. I chose to write a dynamic client, which works fine(almost!). Only one
problem, in the programming guide that comes with weblogic they only mention how
to call system.out.println on the result(see quote below). But that's not what
I want to do, I want to use the result, but how? From what I can see the resulting
object is just a java.lang.Object. How should I cast it, and to what? The soap
xml says:
<part name="result" type="xsd:anyType" />
The question is, what is it that I'm receiving and how can I find that out dynamically.
This is the code I'm using:
SoapMethod method = proxy.getMethod("receive");
SoapType type = method.getReturnType();
System.out.println("type is:" + type.getTypeAsString());
System.out.println("value is:" + type.toString());
System.out.println("class is:" + type.getType().getName());
The output of the system.out's above is:
type is:Object
value is:Object result
class is:java.lang.Object
quote:
Invoke the receive method to receive data from the Web service. In the example,
the client application uses an infinite while loop to continuously invoke the
receive method, in essence polling the JMS destination for messages. When the
receive method returns data, the client application prints the result to the standard
output:
while( true ){
Object result = method.invoke( null );
System.out.println( result );
Thanks manoj, for taking the time to help me with my problem.
I noticed in your examples you posted in your reply that none of the examples
are using queues. Can you confirm that there is a bug when using queues? It gives
NullPointerException in the Servlet and FileNotFoundException on the client when
trying to access the result queue to read the response of my asynchronous webservice.
See the earlier posting, regarding Webservice works with Topics but not with Queues?
Cheers,
Mr Bean
"manoj cheenath" <[email protected]> wrote:
if you are using soap encoding:
you will get back the object you posted to JMS queue. This
can be a primitive type (like java.lang.String) or a java bean (like
com.foo.MyJavaBean)
if you are using literal encoding:
you will get back a org.w3c.dom.Element back.
few message style examples are attached.
regards,
-manoj
"MrBean" <[email protected]> wrote in message
news:[email protected]...
When I have deployed my simple HelloWorld webservice, I obviously wantto
write
a client. I chose to write a dynamic client, which works fine(almost!).Only one
problem, in the programming guide that comes with weblogic they onlymention how
to call system.out.println on the result(see quote below). But that'snot
what
I want to do, I want to use the result, but how? From what I can seethe
resulting
object is just a java.lang.Object. How should I cast it, and to what?The
soap
xml says:
<part name="result" type="xsd:anyType" />
The question is, what is it that I'm receiving and how can I find thatout
dynamically.
This is the code I'm using:
SoapMethod method = proxy.getMethod("receive");
SoapType type = method.getReturnType();
System.out.println("type is:" + type.getTypeAsString());
System.out.println("value is:" + type.toString());
System.out.println("class is:" + type.getType().getName());
The output of the system.out's above is:
type is:Object
value is:Object result
class is:java.lang.Object
quote:
Invoke the receive method to receive data from the Web service. Inthe
example,
the client application uses an infinite while loop to continuouslyinvoke
the
receive method, in essence polling the JMS destination for messages.When
the
receive method returns data, the client application prints the resultto
the standard
output:
while( true ){
Object result = method.invoke( null );
System.out.println( result );
begin 666 allmessage.jar
M4$L#!!0`" `(`!Q<7RL````````````````)``0`345402U)3D8O_LH```,`
M4$L'" `````"`````````%!+`P04``@`" `<7%\K````````````````% ``
M`$U%5$$M24Y&+TU!3DE&15-4+DU&\TW,RTQ++2[1#4LM*L[,S[-2,-0SX.5R
M+DI-+$E-T76J! D8ZQG&&Q@J: 27YBGX9B87Y1=7%I>DYA8K>.8EZVGR<O%R
M`0!02P<(SE1K#D<```!'````4$L#! H``````()T72L````````````````$
M````86YT+U!+`P0*``````!12$0K````````````````"@```&%N="]B=6EL
M9"]02P,$"@``````44A$*P```````````````!,```!A;G0O8G5I;&0O97AA
M;7!L97,O4$L#! H``````%%(1"L````````````````8````86YT+V)U:6QD
M+V5X86UP;&5S+W-O87 O4$L#!!0`" `(`#>&62L````````````````D````
M86YT+V)U:6QD+V5X86UP;&5S+W-O87 O0VQI96YT+F-L87-SA55;4]M&%/X6
M7R2$FA %4QP"I9<$.S82I)=0DZ9M*"2TAM Z#:7I318+%I$EC[0&\]#^I_;!
MM&62R?2Q/ZK3L[X4%)S&,SZ[>_9\9\_EV]7?__SY# G,85]#!@4%10U#**B8
M4V%JL#"O8D'%30WOXCT%[VO04)"+#U3<4K"HX0(^5%$:P1)N*_A(Q1T-!CY6
M\(F*3S7<Q;*"SX:Q@E4%]S1<D;[ORW%-BL\U?(&R@G6&]&W7=\4=AD0N_X@A
MN1SL<(:+9=?G&\UZE8</[:I'FF3==GV&\=SC\KY]8%N>[>]9%1&Z_MZ2!&HK
M+8<WA!OXD8(-6E>"9NCP55>"1Y8]E_O"E$@=;^(MAK&.EZ9P/6LS#!H\%"Z/
M&":EVO3M.ODU=VU'!.&1*2-T;8^A>,BK7K#G.F84V VS)D3#K-!LK6NP'/B"
MM\1J%Z;@@8Y-?,F0B<,.>%@-(IF3")M<P5<Z*GC(<*UO9DDSRZ%*.)9TO^+3
MG *2M7%T? W*=SKND_=,^C'W,FE9W52L>(2R!EL,BS*!DF5Y@6-[M2 2I5OS
M\PL6;]GUAL>M+5ZM\/# =<Y.S<-HQU/PC8YM?,LP%8_YU(Z*VJ(H-.[4@FZ;
M=#S&=PRCI^U[4-WGCJ#VU(+#&3OD,T=!4\'W.G[ CS'#K@,%/^FP4246O+AU
MM[F[RT,&)>11TQ,E'0YV='#L*J"#:W"IX[V\HFZH74HP7#[U]1^%^MH./>[;
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
MXO4?8PO_D>IW74TC#S%C%S-G=RL2,P</%U);>VL7Q6EW.89,1K@?R+ `)
M#,TJD$V[8?)@%+05> C"5J3AJK[*G"4R7/2!M%/JYUM22_[QO+WG:D'EZ.R<
M[R&RE*L3#<'7*C8\$/(+CAO2@^Q(P@8);N=+-YW0`#JR7KA%>^I6E'TQ+L$J
M-#F[35EW-W+2`[-'"2%Y$$T3*;G]K-!=I?_66VB+.UCU9QZ1.S!5/\7E#M3!
MC0I:/&2TS#E,DUSZW18"]AKRB0$48D5N>>'4A8R$6>O=.%B?/CWX.!NH$P\A
M_&*UK>Y0T%$%*W[#M-Z-5B# -MC\^I'I?M'$<-P*=^*^:&R',//,2ZDITL_C
M(YSB$\?CXQ3DEL4%CI66PWGX]ADMA*A$59B]R<0U-//G;Q^Z9TH,5<L05$&Y
MOLQ F8I4&AG_WQ+%0+:DEL>5U&:%*R :BSRI;RM[-O>8=D8L+@^AMLT":%1^
ML4X;Y>W(OHPRBZ7 !IN",2F9RP2#5T];N)O"\;\1`W+ETK>'[@5M9)S3#)]"
M\"'7@RGH4>.YTMX\24,7L,!K,#J%3"7<:[$7%4B4:^S?=)LZ(VW35^6XTB5R
M/F4Q.LL>53<1O=;V403^F.049?*Z&^'>;1V^:9Q^=23VO%(B9TY\IQ=4+-S7
MS??5&QN8(C)'WQD&/K%@#1)P`KVSGIG2U*LUQ.7K035R$>P&T?]8RB9L$3K@
M4!HR'\Z_23^)"2/M=,O<Z&,A:B7]`-;WT[G?=8Q%'ZBPC<'S;&\CIQ9O6\TY
M"/0L3R.'+/A5:P%!92U'D3OB\#1M6BT%3"W\L>QM)"V?!F^5+;[S@ COL6R3
M18%B&>Y9*^T78WL6O5T[66_7S 5<O*S/O^(\I<!CH#O+;+%C$_-V:8B;U/+^
M`Z6&")!R`DP!VG9RJZ93`O^--+4P'$02"!!0"^S_%>_S/25O:F9I[TEJYV
MMDT3E!/3#4U2_Q0JFILF&%MA_^_]:YF'=+:3#DSBRG1GCX3!%JNP:KTX'J'B
M\M8:`;]PWQ^@YV?_B'1G_R#T,F7S]OZ8X,JL\"+SUHH4NW"'8A>MX!^7]8N(
M_3"\!/ZORV@"@1.3_W@(_1\7[[^=H2$F_+\KP\/,V-;!PLJ$WM/.UB]^(&J0
M$4WL-?0]W&(UF3<S-)H(K?):& G=%2G=ZF,)+3N,5//+AV6<4'ZD>I /\\;+
M6+7:?/.[,R2OTL5C*6H$,7EE\,.B,V.6T"QBD3E\>AG2^IMB*O8@8J3U+YY:
M@H[/BC3$-G;&'9-QARP17ZAA'_)G[RFZ5,"SKAL=NX&H9OC&X:(F"5Z\5199
MY)L#,@O0_IE@7 RQ>K*&_.9<!VU01'G%&I)$-D\`:T8BG9F2E\A-$3JT+TC
M]>B2MZ8?X%7-EX?FKN7N%I63]YZDXW]/Q&>GOW#N/_\-!_Z?)@+S'_V_PSH\
M;OPO+AC'%3KZBBDI-:C_BQI=ZSPDS&;*R5^T(].-=5)J4[22TO7*RS)UTA.,
M(\!%>!FYT/*%Q4D)0/TL$$ZM301J\XQB8_T,]!E$;BX<"V `A :L`\N*?P2A
M3_^_&[-\J.'.X3\F8OY'<(C_)[C_,FM15;+99$3RY[@2L/3*<TL8,P*S2YX7
M;$-/4GI11?M,HAQO3#@B_7Y-)N-I[3)UQ?.)>MH^O>7?UJ/_Y/ST;_MXYZ20
MT"W3M7EX.WPQ<I(@I^IO5#^J&I<S,Z@>6O GADU5^;MN+9[G*&??G$9\*J\:
M)7N.9OAC)TS.<_ID\9=/P-':1NRQ,N0;#1E&0]-RD=>'_[D_A$P+MH%4"FJ"
M-BM8=.RKHZ\D*GW<=Z:D+QJ7!0M\=$O7V293(W59_6A)77>1/"RL%:W3=:M0
MU,8AL2H[R":\=#4&1$F5<E]Y&IZ!9*_0,3K2J4\>WIX9R]!D(W#2^\HW8@R7
M4=Z9?7!'/X&A.^W&H I%]*:#^FC$NGML=='YQ7%^9>?"E824^6S"L3D4P)\T
MP.7+YJ#]D8EL_1DG5!'[M.S>>QHEI!(!%S;':)9_7*=BX#!!&;":>&*XR6U[
M4/8[L+3L'\,+K[U 8+68RY%IO4<B_3LV-C>L"K,Y/8%D(8SN6<2CX;VM1 AE
MD&#IR%K*O#/8VA17ANO6%*+\6G2_'!%./\4C#E$WKB2D[A3]W8!CH<S(X8JL
M.R(W!X-AZ4(BC-^Z`2VSXC^+]!M-H8<=#KZ?YLB<L[A/<=U5='1+P@<3T[&O
M)-.W=F 2;DEZ4VENE^M9\?T136;M=NM'&HP4KQIL=ER;@/D/L3^,PUY;NUI:
M(Y3TDIWO,^$+Y+]9<C'@]T/\3U690?S_1=[$ULK,WI7>[email protected]&33H<U
M56^WV6JW^1;ZGX>$V79SJOX:;M/==/?33XVO4MQC>_5[A\LDO^%WVV2F9477
M)J^&$A0F# ;L?97F3ZD8Z),!_E)?6DY&)5)N2C=G<$Y"=TI[1A1U3XYG;6G,
M(SF%;9W/>7Z0XS8[#0O'ZVC>,R?_&'/7Z/#(H7KB_4<AFC/[0G%D/"S6N4\B
[email protected]>G@9@]1,K)R< %$``'4Y@L@'Z3S)S]^=Y/@AL=F[>NG;B\SBM4+
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
M3S0@\F*A*0[$NS[CJ96WWGA04\C;X-: [!JBX%A5,E3B+F3IB]-S-V^)B9
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
M2& .&9?CKI+E`, #@]#SPF58$.=W$*HZ[<Q8B#LU+LEU!9/[email protected]
M'@/=X]7Q#3L$+!H*G"&]^W^58'_74C$&@A@YH(C#J.P6S]=NAN)\].1AY900
MLPI]Y\SX3SM>#)#I]; >X?^BM3<;LISQ=)7YUQ5W$TKD> ;_TQ!8$9[3E9=:
MC1:N>-8DW1*:$E+WNEWLM3#NT/@:; !@-%C?5;=I36;N&-_T"HW=(%?>,+^O
MUH^L<J9I5!QAQM0)\%1KG<>]_<00^57[_T&0=I%SX'AQ,,&Z<;']?,3YL0`+
M&",<$%6#/#1 T?@>$Q@A' F(%(H/H"#"I/B;2#<4$*'-U/:KLSY*K;-)`EOX
M$ EVT?+/DST=3B*T5G -[:SY29PI]=]$@_881E3V^,4?%/L%]Y;%TA_:R!Q4
ML7M$I(R[OPFJA:2>`AM_IL\],R>^/-<K4,>1`D$,O5@XF%?C9A/M2VC(N22A
M:.#3@@PG!%%MBG[$03DJ,<1PJ^& _I(P7*$FP3<6MI 9+Z5#Q8>)"553;1/I
M*W9%>NU9E1<&X:T@+I4Q&L;A2ZC;IM'3SS]EN<BQ1+O&!]1<T+4:%Z\BFRY,
M$RI_9%B='*%69Z9&KO%*H/1TD1\?ES<(#%NOM6K1^W@M`]/?N2-,F?YLT3L^
MW(Q,HU#;S0B883GYI3FH<V\O6;8HHE?8+UOC3BT0!Q+9.IG,OZ_*J^>R+/<`
MA^4U1LU,HW&V-LYT/O'8/X;DM9U"$RQZ6X;G]+Z2!"TTF==N.^W5HE)A^M"6
MWGRXZ+0@V/L_9M&<B*^XJ(LQNP4*%WZL.Y9\0P>JEV=T\EDWWVIUF8UV=LU:
M:!UX-'L*_O[I4;,"5R _\.3,%&IXLMS@3YN5(]+ 40HL,/]KZ\L2(V,"G&D3
M\B:6$Q+X-K"\I02$R=EWGUVM8ZL_PFG;O2)MH6GVKS.$H&>]A)^?!/Z'ZEYE
M'#<-5'D$G QD'>>-*(@R084O(.[BHD>/)P8CM.Z][*0J'P>GSI8N:=OV7M)J
M1$S2_&2!J,K&N2>8<Y,*TVD5<N:[_)S>&JVK0*:?1A%@%60(0RPP@[.X0XMB
MV]L]&F5JTCJ^\ZQOS#<[EA_PSAY*5$M,2R@HF&3X.RSR\6M6159*^+/[IV;N
M]VF'?Y74\J@6XYV$4 88LT\!$AU;*ECD=\@GV^I)8430.5.",Q4IFVX:32]X
MGVO]DG__^-D^-M_.A4(-]PP>F#"22$V\G,B(Z%Z0@@SHY[BG(HM]BG)&:M53
M`([VG$X_)]K$^:)-CG2X*;;6W* G'B]@>OL^-/+%%B=-9TERS>VMAIV7:II^
MD>Z&9,#GJO]G+[=)_?L;=J[1E#5\1\VHUV_8`P^&QU^'*1K]E>ZXJ6)A+E_
M+&S2\B(\E\*>@93/Z_5#U<&_K6NA&E9/`1_F,KYCI8>"VK=O3B*)]&H7"N5E
MS:F_!9+?58(1S*;IS3#0EOE,=JAFY'(Y=W39K)RG;KL(#IB(:Q>#BB EO$K>
M,D.7RABW7,K&/X3(2CBV!22SLB(/"V.H*@PN3EG7^022!+5HB8Y+3?/?\Q2.
MGK4P&3$58_O2S) ZMU(XYX9&[%>S7$2MI*1SF1OX(\??P;69""!#0L++W]G1
MS0`9TBSGQE^RR+7*->H"***/%O;+BZ72CN!(O']V^+A$Q(7$09#?BE*4&+\/
M!SI<^#Z5UW,.;Z5(C*3DW@2$:[$6>?.Q$F4*Z2PL++^9V?8W+Z>?A[!!"B[U
M[!$PNA!_\C>*5Q1U(RBQW$1M+J-,IT#PP,2B4YPJTZ%SA\/O5V&,6!DW;/V>
M^=4J_C@$.*78N'5(`,!:.BU6^V&FS+P@#.$^_T!@D%2&'!O:S+B7'^#6+Z:X
MY*TP=&"^'/B09C_7^&N0EBON"64J4ESW+29-NR_4JI%A!\!N>94N7IP*QJ^>
MTIASOJB>JYFY`VNH)M5V>591Q# J)SU*R2U6+C*7_""[DJBI7LPJP"/ ]2+9
M(%K4@]0!_<B?[\ZS9LK3S,,\FI=;BXAI\ALWV5^J79@L&"KGV?4=AK7AB[\T
MUA15T^EH),U#PRQD+'1@]2;>X4G-EVF)*(L*2 !Q+!W\D0+;'#PF?(5I<Q%#
M$RY]\]9WF23KL\N$T1H06H0QA+A=EV7Q.@2>>!I\F]@J')W^4PW&1E8Z<?YR
MO 2XG;%("-^EK7H63K?'.NZR<\Q]!C\KD2ZXHMD0(?$W+DS>V-(@LSH+BU*"
MZ2W>RY6LC1<PO6::&7QM)/79!J4Z04KKVL^SH:;$&VF[RV(P=VH('\*GZ/W(
M7<+\R5BX0-+>H )1J=T:5A2E&7*E/X0I>%>A"D%AH9Y6P$/<5NRDAEZ/\C
M=F$P[EE9$Y%=K\QSZD]1`KL2JFT2!2U9`,Z3)>^HL#E.*>(5SPZ#;8&6]O/7
M^Z'TKGEWF>RR/RP3@R:#=*2]Y"=Q&8<H(U.2R2+IM\051J!W(PZ8FT[)4<C;
M6)<P=H/J.*19Z@CEA<0K?<0=\5WFMHMJCD_?)?EJ,-%);J94*. ;=-\A+ISZ
M5IK\=\0A*B '4ND[?F1A"&SOKJWKRV#2[" .+F+.`%C-+>G<S.I=5'[)1;LH
M@*36$E!.,X=H=:?L,SQA%@#P>=;#$_75)DQ@$,Q=)HN",F[\6;E+B#1[\;UW
M^EMTK)Q/-X#&$ .V"3S("UE6.5S+.8S?#=F"6S<&6(*--B-;)/NKY(C_FC44
M- DKEIC@P5(T`VN@APPN7J B1O508GAL-%D?WQK)R&OG@NV4-89J*0D=('G)
MBON1[%(\%([6[Z^F&^C.LVJ:GGU6P)Z=]E:4S)LE7J9ATVDZ/5;^&5MX&YD-
M&G X$,4.W5V 9V,.SZ&[F\Z.^<M6)C1O*R8[4VEX@O0QQ(ZY%FKF:Z;[D9R5
ME6*RY:W4WXAU4_A#4^N]S?+&=9Y'"XU4`C>Y+3@*?VDE,N:KE,,[\/RW];Z?
MME3P3AD_>[QWG<$`2^ 0\HD#C:DT$;4ZH 2G^3?-?O@G8!5VOZ\UZG?C!R=>
MUXZ28/G8##AJ2J2#,:(!B5%<6Y&QW!0(J1\(#6XE!AP">2)T'34*$!D=:LD!
M1TZ]:XQ5DY3A39J2I4W]=Z&R4D]N+*O6?+WNI/+*(GK F>;[97]L-GVW\6@B
MJ S+GV-SAL.704=.@P[]N+ 4@$_(=1G[ANK-DR>G*^ZCRO/0M3@YV<9N[
M[!-.L=6RLV:)='';LJ33PJNC$L#.G0K88=VV660M86[>P9G'PB((K'S,QC<J
M%WP7P5G:0@E_$%JM\'%%*%5QL[GQ$J: O57L@+IE$S11_'"%XRX>7#Q3GWXN
MW,?<R0I55CS'V H*Y2^XQ[F:"$L2_*2Y4BN\P-R"$(%5W?(.;56ZA[F];K"8
MV*S3,?S<P'!KMXT4R'E>KP\;R)X.](R-7G1164D%1KAS5'_*/F7;-0'W(*2@
M7&M %R<ZH>R!&-G?7321*509(#!R+(7=[(\W=#Q"T<Y1T%OU8R/UB8D^2:>-
M]MVI"1C&J,G"]_3VIYKUG1SUJSB[%23HR="/-/6_G&X74A_.UJ^P\G,E[6:(
M#.=O'8UBV*MWD1B3BZ.LZ:./X,G.`G-+9L"OYQ';K\P!B<"5#,Z=$0_F5W-T
M/KZB8+^R4Y,:V\&WBLC3K@HE5)P!H7S]EMOUBD&@S*'_!+K-C-E=7@XDZ";.
MIR#ZOB>B>G)PVW. WIYEK/"SP7@ST'8R$';R)=T:,MX+WGCJ?>H&PTIT2N;+
MXD31D)\%&^X2UYT=,9FEZXS':PR@W)S1[_T<25:XCCV%*J PC!%!#.G;)/EA
M/0JX6/67SN^,,WBS]H,ZR3;D"DFM6+B5*M>_72S=N;HOK=W)4BSC698O^(3&
M`^:_I+ -QO"O*#^)S=2X^'E0OXXEE'2P`K%<W0JXC\)5<CG_LJX:SZ12KI*+
M:_FBS4](U_!1^9DVI#O#QC:X026W="Z?-114O=*X&28I7.'F,HXP\([?JO)%
M*Z@2F%1\EC(V3:3V6:ZAR%=9PII=F:=T!=LU0LYKXK.6XGW;:[;:Q-H.<FD_
M\:ZX%Q\ON"\=.::<]$=8J> <\B_NMA1]=QUKI.`04:$,%Q\HC*[O\K.W(O
MFU&?G0\PF,4*5_CNZ'K&VA#//Q#:V<?BFX=@T6M2\Z_;K0H@?3W/KC26EM!.
M>X;)J02&[XRKNI#Z:*I,W*C<SV-&'Z+R%MX/[&*5[#$'&CI9E\$\C38@:9>A
M7-=#*S6!BKQ1QGF]+Q:K?]=8]PR(ZEHV2=H+-$OD]K-%?NTRK!Y3)YRK4;L3
M@U5\< VDJS;3?X>Q8$_=$O$T<A=?&N;X]PQ=K&[4ROAB['/(P:=)USHD(:,^
M:*YDG1YA^\#WGMPT`ZLCEO>&X?*)-H/;\D*1X_[Y[^4FH5F+5.T.*4]$6MI:
MNO,"Q:4617SXS0GL19AJ#-&8W7:%^,:>K'.2LVZO/\*P$G,Y0VVJB XD.]"M
M,,@[9N"N,- [?$!$OU7 5OKF.ALV[7:)VC^ <\$6GRXB!J5">JH=HX47^/P:
M]]K[Z^;]TOH20;%HG1:=87S"]E1AA6[#L JH.G[W76WANB71R-;NY\'O8SHA
MK.)N"N@U]V_P;A!BJ%7)T649Z#W\Y #8C")HE/WM&N'M^_4^]FRM`L4]IHZ/
MZ>JQWGH?7+#)XC\-A:!&DN*AYD@2\JJNDDK^%!::R_[LR2IK'J/8!'6_@2=$
MV_V!,'>Y&&A!?9B@.?O9[WY_@@V1WLF\4+I@$P?D&XB?J:R.^K^8$E%U&3MU
M*$+L\+3'/9Q>W0?!WM5_EN3=*8!%H$B]20<HF*9PO9Q"QO+C#2L^KEH&4?E)
M2P))]<X)A3:1,'E=;H!;/?;KPOD;7[NCF1$(B(FGSI4;6[&@CA]2[@^@-TP\
MV-T$BIT5?L^77B(VP"L766X_=!(\Z*9&2*\E"MU1227D6OK9.?/9J21-I I(
M+U?X44 3[%XHQ6/ =?1[K2@2+1K3R\B?L9!'[_SE6%@2"6 C6V6._A5NYV+%
MWL/E18*$FM I%'_9<G(#) A5`KY [N.5Y885#*]:@N&_5OZY+4G2" S"ED-'
M<7AZJL6<?I.9():1=4=HAR/:#>P3J!(>3 '35G34V"EABRH+&72@8W@XY(I(
M7[X7<@I)S4[%&VB]0Q#!\I&%EIA%Y!I'5NK-Y(JE3G]+4UMO7X]\2VL7MJ5\
M7'0E&'G.LR8KA E?[S.%&W4=.V+.):>3:HC;PGG=.4)4#4Q>4+(K[DR3??BN
MD2=,N3H&V=B(S]?Y1E\&(.D3XTUJ@+L<MQ9PJ'6YAMVC?'EN2E&'"V$)]8P8
MA2/(&C8\V:SGP9?<#IM-X\P:*KQFFM 8$G.C&3C&GB40V)TZ/G?$D<C#SD/J
M>YZ_8%6I%:6FUN;O=";+.U5)5COQX3&V?M"JJA:W)2MK;#<YJG\G!DV0'V]R
M,^<VC-WD!<3D2G%;GE+$&>SJ(^D<89^P7.N <9V&Y%"=TLYM<OLCK?RI:JT+
M2-7_FQE^W()5^<;8M#(=-->Z$&K2;(%CIOO0-P/N0+Q[GHP#G(E!9GP"R#%/
M.BW7"8[5YTB=S&5>
Similar Messages
-
Dialog prompt and check if file exists, and use the result of dialog
I have this working script and I want to change the way it behaves.
I want a dialog to come up, Do you want to skip or replace existing files.
Then the result of the dialog to be used in the reast of the script.
I've added it in the script where I need to use it. in noce big letters, hopefully its not a big job.
Many thanks
property type_list : {"8BPS"}
property extension_list : {"psd"}
script o
property theseNames : {}
end script
-- empty log file
do shell script "echo 'Files not processed in Photoshop :' > ~/Desktop/LogPhotoshopError.txt"
set noError to true
--Setup list of folders and process details of folders
set dtF to paragraphs of (do shell script "ls -F ~/Desktop | grep '/' | cut -d'/' -f1")
set tc to (count dtF)
repeat with i from 1 to tc
set folderName to item i of dtF --<: is the folder name, no need to use text item delimiters -->":"
if folderName does not start with "2_" and folderName does not start with "Hot" and folderName does not start with "Press" and folderName does not start with "Design" and folderName does not start with "Keywords" and folderName does not start with "Season" and folderName does not start with "Sue" and folderName does not start with "Design" then
set {oldTID, my text item delimiters} to {my text item delimiters, "_WK"}
set FolderEndName to last text item of folderName
set brandName to first text item of folderName
set my text item delimiters to "_PSD"
set weekNumber to first text item of FolderEndName
set my text item delimiters to oldTID
set theFolder to ("Hal 9000:Users:matthew:Desktop:" & folderName)
--set up names to destination folders and create locally based on brand name and week number
set this_local_folder to "Images:2012-2013"
set localWeekFolder to my getFolderPath("WK" & weekNumber, this_local_folder)
set localBrandFolder to my getFolderPath(brandName, localWeekFolder)
set localBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", localBrandFolder)
set localBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", localBrandFolder)
set localBrandFolder_PSD to my getFolderPath(brandName & "_WK" & weekNumber & "_PSD", localBrandFolder)
set this_Network_folder to "GEN:Brands:Zoom:Brand - Zoom:Upload Photos:2013:"
set networkWeekFolder to my getFolderPath("Week" & weekNumber, this_Network_folder)
set networkBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", networkWeekFolder)
set website_images to "GEN:Website_Images:"
--set up names to destination folders and create over Netwrok for FTP collection (based on a mounted drive)
set this_ftp_folder to "pulse:"
set ftpWeekFolder to my getFolderPath("Week" & weekNumber, this_ftp_folder)
set ftpBrandFolder to my getFolderPath(brandName, ftpWeekFolder)
set ftpBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", ftpBrandFolder)
set ftpBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", ftpBrandFolder)
--at the beginning of the script, ask whether to replace or skip existing files? to apply to all?
--use the result for the if file exists?
display dialog "Should I replace or skip exisiting files?" buttons {"Replace", "Skip (Faster)"} default button 2 with icon 1
--taking the folder identify which process it must follow.
if brandName is equal to "BH" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- B H Folder Photoshop Process
--if thefile exists in the folder localBrandFolder_PSD then do the result of dialog.
--"Skip" the file and move on to next
--If "replace" continue the rest of the script.
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localBrandFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (localBrandFolder_High_Res & name) as JPEG with options myOptions without copying
--get file path, return path of the JPEG file, work with (without copying)
-- (with copying) : it return path of PSD file
set newFile to file path --( return path of type alias )
-- duplicate file using the Finder -->on duplicateFile(..)
my duplicateFile(newFile, {ftpBrandFolder_High_Res})
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1348
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (localBrandFolder_Low_Res & name) as JPEG with options myOptions without copying
set newFile to file path
set newFile2 to newFile as string -- for testing end of name
if newFile2 ends with "_2.jpg" or newFile2 ends with "_3.jpg" then -- exclude website_images
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res})
else
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res, website_images})
end if
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end repeat
--End BH
-- else if and the rest of the script.....
end repeat
if not noError then do shell script "/usr/bin/open ~/Desktop/LogPhotoshopError.txt'"
on myLogs(t)
try
do shell script "echo " & (quoted form of t) & ">> ~/Desktop/LogPhotoshopError.txt'"
end try
end myLogs
on duplicateFile(tFile, foldersPath) -- tFile is an alias, foldersPath is a list of folder
tell application "Finder" to repeat with folderPath in foldersPath
with timeout of 200 seconds -- adjust it, error if the copy is longer that 200 seconds
duplicate tFile to folder folderPath with replacing
end timeout
end repeat
end duplicateFile
on getFolderPath(tName, folderPath)
tell application "Finder" to tell folder folderPath
if not (exists folder tName) then
return (make new folder at it with properties {name:tName}) as string
else
return (folder tName) as string
end if
end tell
end getFolderPath
tell application "Finder"
open "Hal 9000:Users:matthew:Desktop:LogPhotoshopError.txt"
end tellHi,
I think that's what you want.
I put the dialog in the beginning, so it does not appear to each folder, otherwise put it in the loop as it was originally.
property type_list : {"8BPS"}
property extension_list : {"psd"}
script o
property theseNames : {}
end script
-- empty log file
do shell script "echo 'Files not processed in Photoshop :' > ~/Desktop/LogPhotoshopError.txt"
set noError to true
--at the beginning of the script, ask whether to replace or skip existing files? to apply to all?
--use the result for the if file exists?
display dialog "Should I replace or skip exisiting files?" buttons {"Replace", "Skip (Faster)"} default button 2 with icon 1
set skipFiles to (button returned of the result) is "Skip (Faster)"
--Setup list of folders and process details of folders
set dtF to paragraphs of (do shell script "ls -F ~/Desktop | grep '/' | cut -d'/' -f1")
set tc to (count dtF)
repeat with i from 1 to tc
set folderName to item i of dtF --<: is the folder name, no need to use text item delimiters -->":"
if folderName does not start with "2_" and folderName does not start with "Hot" and folderName does not start with "Press" and folderName does not start with "Design" and folderName does not start with "Keywords" and folderName does not start with "Season" and folderName does not start with "Sue" and folderName does not start with "Design" then
set {oldTID, my text item delimiters} to {my text item delimiters, "_WK"}
set FolderEndName to last text item of folderName
set brandName to first text item of folderName
set my text item delimiters to "_PSD"
set weekNumber to first text item of FolderEndName
set my text item delimiters to oldTID
set theFolder to ("Hal 9000:Users:matthew:Desktop:" & folderName)
--set up names to destination folders and create locally based on brand name and week number
set this_local_folder to "Images:2012-2013"
set localWeekFolder to my getFolderPath("WK" & weekNumber, this_local_folder)
set localBrandFolder to my getFolderPath(brandName, localWeekFolder)
set localBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", localBrandFolder)
set localBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", localBrandFolder)
set localBrandFolder_PSD to my getFolderPath(brandName & "_WK" & weekNumber & "_PSD", localBrandFolder)
set this_Network_folder to "GEN:Brands:Zoom:Brand - Zoom:Upload Photos:2013:"
set networkWeekFolder to my getFolderPath("Week" & weekNumber, this_Network_folder)
set networkBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", networkWeekFolder)
set website_images to "GEN:Website_Images:"
--set up names to destination folders and create over Netwrok for FTP collection (based on a mounted drive)
set this_ftp_folder to "pulse:"
set ftpWeekFolder to my getFolderPath("Week" & weekNumber, this_ftp_folder)
set ftpBrandFolder to my getFolderPath(brandName, ftpWeekFolder)
set ftpBrandFolder_Low_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_LR", ftpBrandFolder)
set ftpBrandFolder_High_Res to my getFolderPath(brandName & "_WK" & weekNumber & "_HR", ftpBrandFolder)
--taking the folder identify which process it must follow.
if brandName is equal to "BH" then
try
tell application "Finder" to set o's theseNames to (name of files of alias theFolder whose file type is in the type_list or name extension is in the extension_list)
on error
set o's theseNames to {} -- no psd files or "8BPS"
end try
set numOfNames to (count o's theseNames)
repeat with j from 1 to numOfNames
set thefile to theFolder & ":" & (item j of o's theseNames)
-- B H Folder Photoshop Process
tell application "Finder" to set b to exists file (localBrandFolder_PSD & item j of o's theseNames)
if b and not skipFiles then -- file exists and "replace" (continue the rest of the script).
tell application "Adobe Photoshop CS5.1"
-- I remove the command activate, Photoshop stay in background
set ruler units of settings to pixel units
try
open (alias thefile) showing dialogs never
set origName to name of current document
set myOptions to {class:JPEG save options, quality:12}
set myPSDOptions to {class:Photoshop save options, embed color profile:true, save layers:true}
tell current document
--If the quick mask mode has been left on then delete the channel Quick Mask
if (quick mask mode) then delete channel ¬
"Quick Mask"
--If the Layer is incorrectly labeled with Original Layer it needs renaming to original Image
if (exists layer "Original Layer") then ¬
tell layer "Original Layer" to set name to "Original Image"
save in (localBrandFolder_PSD & origName) as Photoshop format with options myPSDOptions without copying
(delete layer "Original Image") flatten
resize image resolution 300 resample method none
--sharpen image
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
save in (localBrandFolder_High_Res & name) as JPEG with options myOptions without copying
--get file path, return path of the JPEG file, work with (without copying)
-- (with copying) : it return path of PSD file
set newFile to file path --( return path of type alias )
-- duplicate file using the Finder -->on duplicateFile(..)
my duplicateFile(newFile, {ftpBrandFolder_High_Res})
--Prepare for Low RES by resetting image history
set current history state to history state 3
flatten
resize image width 1348
resize image resolution 300 resample method none
filter current layer using unsharp mask with options {amount:80, radius:3.2, threshold:0}
--add save to lowResFolder with same options
save in (localBrandFolder_Low_Res & name) as JPEG with options myOptions without copying
set newFile to file path
set newFile2 to newFile as string -- for testing end of name
if newFile2 ends with "_2.jpg" or newFile2 ends with "_3.jpg" then -- exclude website_images
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res})
else
my duplicateFile(newFile, {networkBrandFolder_Low_Res, ftpBrandFolder_Low_Res, website_images})
end if
close saving no
end tell
on error
set noError to false
my myLogs(thefile) -- write path to log file in Desktop
try
close saving no --if exists, close current document
end try
end try
end tell
end if -- else "Skip" the file and move on to next
end repeat
--End BH
end if
end if
end repeat
if not noError then do shell script "/usr/bin/open ~/Desktop/LogPhotoshopError.txt'"
on myLogs(t)
try
do shell script "echo " & (quoted form of t) & ">> ~/Desktop/LogPhotoshopError.txt'"
end try
end myLogs
on duplicateFile(tFile, foldersPath) -- tFile is an alias, foldersPath is a list of folder
tell application "Finder" to repeat with folderPath in foldersPath
with timeout of 200 seconds -- adjust it, error if the copy is longer that 200 seconds
duplicate tFile to folder folderPath with replacing
end timeout
end repeat
end duplicateFile
on getFolderPath(tName, folderPath)
tell application "Finder" to tell folder folderPath
if not (exists folder tName) then
return (make new folder at it with properties {name:tName}) as string
else
return (folder tName) as string
end if
end tell
end getFolderPath
tell application "Finder"
open "Hal 9000:Users:matthew:Desktop:LogPhotoshopError.txt"
end tell -
How can i plot a histogram with using the results of Line Length
PLS HELP.How can i prepare a histogram with using the results of line length code(It is somewhere in the middle).
This is a final exam take-home question. I would appreciate if you can help?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.text.*;
import java.io.File;
public class WordAnalyser extends JFrame implements ActionListener
private JMenuItem jmiAc, jmiSil, jmiCikis, jmiAnaliz, jmiHakkinda, jmiKullanim;
private JTextArea jta1, jta2;
private JFileChooser jFileChooser = new JFileChooser();
File hafizada;
File aktarilan = new File("Sonuc.txt");
// Main method
public static void main(String[] args)
WordAnalyser frame = new WordAnalyser(); /* Ana ekran olusturulur */
frame.setSize(400, 300); /* Degerleri belirlenir */
frame.setVisible(true); /* Gorunebilirligi ayarlanir */
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public WordAnalyser()
setTitle("Serkan Ozgen Dosya Inceleme Programina Hos Geldiniz");
JMenuBar mb = new JMenuBar();
setJMenuBar(mb);
JMenu fileMenu = new JMenu("Dosya");
fileMenu.setMnemonic('F');
mb.add(fileMenu);
JMenu helpMenu = new JMenu("Degerlendirme");
helpMenu.setMnemonic('H');
mb.add(helpMenu);
JMenu kullanimMenu = new JMenu("Kullanim Kilavuzu");
mb.add(kullanimMenu);
fileMenu.add(jmiAc = new JMenuItem("Ac", 'A'));
fileMenu.add(jmiSil = new JMenuItem("Sil", 'S'));
fileMenu.add(jmiCikis = new JMenuItem("Cikis", 'C'));
helpMenu.add(jmiAnaliz = new JMenuItem("Analiz", 'D'));
helpMenu.add(jmiHakkinda = new JMenuItem("Hakkinda", 'H'));
kullanimMenu.add(jmiKullanim = new JMenuItem("Kullanim"));
getContentPane().add(new JScrollPane(jta1 = new JTextArea()), BorderLayout.CENTER);
getContentPane().add(jta2 = new JTextArea(), BorderLayout.SOUTH);
jmiAc.addActionListener(this);
jmiSil.addActionListener(this);
jmiCikis.addActionListener(this);
jmiAnaliz.addActionListener(this);
jmiHakkinda.addActionListener(this);
jmiKullanim.addActionListener(this);
public void actionPerformed(ActionEvent e)
String actionCommand = e.getActionCommand();
if (e.getSource() instanceof JMenuItem)
if ("Ac".equals(actionCommand))
Ac();
else if ("Sil".equals(actionCommand))
Sil();
else if ("Cikis".equals(actionCommand))
System.exit(0);
else if ("Analiz".equals(actionCommand))
sayim();
else if ("Hakkinda".equals(actionCommand))
JOptionPane.showMessageDialog(this,
"!!!! Bu program text analizi gerceklestirir. Her hakki saklidir SERKAN OZGEN!!!!",
"Bu program hakkinda",
JOptionPane.INFORMATION_MESSAGE);
else if ("Kullanim".equals(actionCommand))
JOptionPane.showMessageDialog(this,
" Ilk once dosya menusunden Ac i tiklayarak analiz etmek istediginiz Dosyayi seciniz (Lutfen uzantisi *.txt \nveya *.log olsun). Daha sonra Degerlendirme menusunden analizi tiklarsaniz dosyanizda kac adet rakam, harf, \ncumle ve kelime oldugunu gorebilirsiniz. Simdiden kolay gelsin",
"Programin kullanim detaylari",
JOptionPane.INFORMATION_MESSAGE);
private void Ac()
if (jFileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
hafizada = jFileChooser.getSelectedFile();
Ac(hafizada);
// Acilan Dosyayi ana ekranda gostermeye yariyan bir method
private void Ac(File file)
try
// Acilan dosyayi okuma ve ana ekranda gosterme
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
byte[] b = new byte[in.available()];
in.read(b, 0, b.length);
jta1.append(new String(b, 0, b.length));
in.close();
catch (IOException ex)
// Temizle tusunun hangi ekranlara etki edecegini secme
private void Sil()
jta1.setText("");
jta2.setText("");
private void sayim()
int buff;
int sayac = 0;
int Cumleler = 0;
int Kelimeler = 0;
int Karakterler = 0;
int Satirlar = 0;
int Rakamlar = 0;
boolean start = true;
int linenum = 0;
try
FileInputStream instream = new FileInputStream(hafizada);
FileOutputStream outstream = new FileOutputStream(aktarilan);
BufferedReader infile = new BufferedReader(new InputStreamReader(new FileInputStream(hafizada)));
PrintStream out = new PrintStream(outstream);
out.println("---Kelime Avcisinin Sonuclari---");
String line = infile.readLine();
while (line != null){
int len = line.length();
linenum++;
line = infile.readLine();
out.println("Line Length :" + linenum + "\t" +len);
while ((buff=instream.read()) != -1)
switch((char)buff)
case '?': case '.': case '!': /* Eger "?", "." veya "!" gorurse program cumleleri ve kelimeleri arttirir*/
if (start == false)
Cumleler++;
Kelimeler++;
start = true;
break;
case ' ': case '\t': case ',': case ';': case ':': case'\"': case'\'': /* Eger /t,;:\ ve \" bu isarteleri goruruse program kelimeleri arttirir */
if (start == false)
Kelimeler++;
start = true;
break;
case 'n': case '\n': /* Eger \n gorurse satirlari arttirir */
if (start == false)
Satirlar++;
Kelimeler++;
start = true;
break;
default:
if (((char)buff >= 'a' && (char)buff<='z')|| /*a-z, A-Z veya - degerlerini gorurse karakterler arttirilir */
((char)buff >= 'A' && (char)buff<='Z')||
((char)buff == '-'))
Karakterler++;
if ((Kelimeler % 50) == 49)
if (start == true)
out.println();
out.print((Kelimeler+1) + " ");
out.print((char)buff);
start = false;
if ((char)buff >='0' && (char)buff <='9') { /* 0-9 gorurse rakamlari arttiri */
Rakamlar++; }
}// switch
}//while
instream.close();
out.println();
out.println();
out.println("Karakter sayisi: " + Karakterler);
out.println("Kelime sayisi: " + Kelimeler);
out.println("Cumle sayisi: " + Cumleler);
out.println("Satir sayisi: "+ Satirlar);
out.println("Rakam sayisi: "+ Rakamlar);
outstream.close();
try
BufferedInputStream in = new BufferedInputStream(new FileInputStream(aktarilan));
byte[] b = new byte[in.available()];
in.read(b, 0, b.length);
jta2.append(new String(b, 0, b.length));
in.close();
catch (IOException ex)
catch (Exception e)
System.out.println(e);
}Why is it that you're not interested in IOExceptions?
catch (IOException ex)
} Empty catch blocks is a hallmark of foolish Java code. At least print out the stack trace.
% -
Using the result of a subselect in another part of the select
Does anyone know if 9i can use the results of a subselect in a select in another part of the select. For example:
select x, (select y from sometable) as ssvar, z, (select abc from someothertable where somecolumn=ssvar) from yetanothertable
Anyone? We have a bunch of Sybase queries we are porting over and they use this extensively. It looks like the 9i docs say this may not be possible, but I really wanted to be sure before I rewrite the queries.
-LouFrom your example, an inline view seems most appropriate to me...
select max_table.table_name, column_name
from user_tab_columns, (
select max(table_name) as table_name
from user_tables) max_table
where max_table.table_name = user_tab_columns.table_name
However, if your actual usage is more complicated, you might want to look at 'subquery factoring' (new in 9i). It doesn't really do much good for this example but here's the syntax...
with max_table as (
select max(table_name) as table_name
from user_tables)
select max_table.table_name, column_name
from max_table, user_tab_columns
where user_tab_columns.table_name = max_table.table_name
Richard -
Can I use the result of a query in another query of the same cube?
Hello everybody;
I have the following case. In query "A", I have used in rows a structure, whit a last formula named Total A, in another query "B", I need to used the result of Total A.
Can anybody help me?
Thanks in advanced.
Mariana SerranoHi Mariana,
You can change local structures into reusable structures in any existing query by selecting the structure and, choosing Save as... from the context menu and then entering a technical name and a description in the Save Structure as... dialog box.
You can change reusable structures that you are using in a query into local structures by selecting the structure and choosing Remove Reference from the context menu.
Also go through this link:
http://help.sap.com/saphelp_sem40bw/helpdata/en/e3/e60138fede083de10000009b38f8cf/frameset.htm
Best Regards,
DMK
*Assign point if it helps... -
Using the result of a function, inside a subselect
Hi!
I´m wondering if it´s possible to use the result of a function inside a subselect. Let me give you an example of what I´m trying to do here:
select * from t_node where node_pk in (get_node_parents_pk(22345));
The function get_node_parents_pk stands in for the following SELECT-statment:
select node_pk from t_node_child where parent_node_pk = 12345
The statement above would return something like this: 12435,23423,23453,23452
These values represent the node_pk value for the parent nodes.
I want the get_node_parents_pk function to return a result set similar to this so that I might call it inside the IN ( ) statement.
Any clue? =)I created a collection type in the database:
CREATE OR REPLACE TYPE nodes_pk_arr IS TABLE OF INTEGER;
The function get_node_parents_pk () is made to return the collection type above. However, this does not work. I get the following error message:
SELECT *
FROM t_node
WHERE node_pk IN
(SELECT * FROM TABLE (get_node_parents_pk (22345)));
ORA-22905: cannot access rows from a non-nested table item
However, if I insert a nodes_pk_arr collection directly into the SQL-statement, like I do below, it works:
SELECT *
FROM t_node
WHERE node_pk IN
(SELECT * FROM TABLE (nodes_pk_arr(24564,23545,34523));
So, when returning the collection from the function I´m told that the collection is not a nested table, when in fact it is. What gives?
Also, is there no way to return a result set directly from the get_node_parents_pk() function, making it possible to write the statement like that shown below?
SELECT *
FROM t_node
WHERE node_pk IN (get_node_parents_pk (22345));
Your reply is much appreciated!
Kind regards
Robert -
Using the result of 1st report to 2 nd report
Hi,
I have created one report with 5 Dataproviders.
I want to create another report by using the result of 2nd dataprovider of thr 1st report.
Is it possible in BO XI R2 Desktop intelligence?
Thanks,
InduHi Indu,
If I understand you correctly, you want to create the query once but run mulitple reports of it. Is it okay if the reports are in tabs within the same document or do they have to be in separate documents?
If the later it is not really possible. There are a few options
It is possible to use a query create in QaaWS, but there is no schedule option around this, so every call is on demand.
Also you can create instances of reports using Web Intelligence/Crystal Reports and have more that one Live Office document/Xcelsius dashboard point to the instance. In this event you are runnig the query once and using the displaying it in different reports.
Finally, if you just want to reuse a query from one report to another then you can copy and paste the report and change the report layout.
Hope this helps
Alan -
Performing calculations on characteristics, using the results as query rows
I want to perform a calculation on 2 date fields (find the number of years separating the dates). These 2 date fields are characteristics. I want to use the result field as a row in the query. How to do this?
Do I have to use a calculated key figure and then converted that key figure into a characteristic to use in a row?
Thanks
SanjeevHi,
You need to use the Condition on this Date difference column.
http://help.sap.com/saphelp_bw31/helpdata/en/73/702e39074dc93de10000000a114084/frameset.htm
With rgds,
Anil Kumar Sharma .P
Message was edited by:
Anil Kumar Sharma -
Hi
Is there a way to filter a drop down list by using the result main data display from"GetUserProfileByName" when open the form?
The second source has a huge list of company names that can be narrrow by email work.
background:SP 2010 and Infopath 2010
CRISTINA& MICROSOFT ForumI'm not sure if I understood your question clearly but here is a good resource on how to get attributes from "GetUserProfileByName" web services:
http://blog.mangroveweb.com/pre-populating-an-infopath-from-with-mysql-data-using-a-net-web-service/using-sharepoints-getuserprofilebyname-web-service-to-retrieve-ad-account-information/
Regarding filtering dropdown list then this could be done by applying form on-load rules.
Hope this helps -
Use the results of an SQL query to create another query
I am working on a bidding/allocation system using C# and MySQL, and I am currently having difficulty implementing the “post-allocation” mechanics of the system. Let me explain how it works, before introducing the code:
When the bids are made on the system, they all have the position 0, so the first thing the system does is order them according to priority.
(bid table)
In this case, 5 bidders are interested in what is in plot 15, but we have not assigned them a position yet.
(bid table)
The system then organises the bids according to the order in which they are going to processed.
The bids are then allocated, but unfortunately there are only 3 spaces in plot 15 that can be allocated. As a result, we use the priority listing to determine which bidder gets what.
(booking table)
At this stage, I can say that I am stuck, there are two things that I want to do, both of which involve reusing the results of the query at step 2.
(bid table)
The bidders that have their job allocated should see: their bid.status updated
from Queued to Allocated,
the bid.position should
be set to 0,
and their job_id should
be set to the booking they have been allocated (i.e. booking.id).
The bidders that have not had their jobs allocated should see: their bid.status remain
as Queued, and their bid.position should
be set to 0 in
preparation for the method to run again
The difficulty I am having is in stage 3, how do I determine which jobs have been allocated and which ones have not, and then run the necessary SQL queries in order to make the updates?
My code so far is as follows:
// STEP 1a - SELECT BIDS
string query =
"SELECT t1.operator_id, t1.datetime, t1.plot_id, t1.position, t2.market_access FROM bid t1 " +
"JOIN operator t2 ON t1.operator_id = t2.id WHERE t1.status='Queued' AND t1.postcode=@postcode " +
"ORDER BY t2.market_access ASC, t1.datetime ASC";
var bidList = new List<BidList>();
var cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
var item = new BidList
OperatorId = dataReader["operator_id"] + "",
PlotId = dataReader["plot_id"] + "",
Position = dataReader["position"] + "",
Datetime = dataReader["datetime"] + "",
MarketAccess = dataReader["market_access"] + "",
bidList.Add(item);
dataReader.Close();
// STEP 1b - SET PRIORITIES
for (var i = 0; i < bidList.Count; i++)
var position = i + 1;
bidList[i].Position = position.ToString();
query = "UPDATE bid SET position=@position WHERE status='Queued' AND postcode=@postcode AND operator_id=@operator_id;";
cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@position"), position);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
cmd.Parameters.AddWithValue(("@operator_id"), bidList[i].OperatorId);
cmd.ExecuteNonQuery();
dataReader.Close();
// STEP 2 - ALLOCATE JOBS ACCORDING TO PRIORITY
foreach (var t in bidList)
query = "SELECT operator_id, plot_id, status FROM booking " +
"WHERE status='open' AND postcode=@postcode AND operator_id='0'" +
"ORDER BY datetime ASC;" +
"UPDATE booking SET operator_id=@operator_id, status='Allocated' " +
"WHERE (plot_id=@plot_id AND operator_id='0' AND status='Open') LIMIT 1;";
cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@operator_id"), t.OperatorId);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
cmd.Parameters.AddWithValue(("@plot_id"), t.PlotId);
cmd.ExecuteNonQuery();
dataReader.Close();
// STEP 3
CloseConnection();I can't tell. When modifying row(s) you have to be able to uniquely be able to identify the row(s) in the database you want to modify. That is why I recommended the other day to use DataAdapter instead of the DataReader. You can with the
reader, but you need to unique identify the rows.
I can't tell from the limited amount of data you posted if in table 2 that there is only one row with the same operator id and plot id. It looks like in table 2 the 'id' number is unique. When working with a database with multiple tables you
need to be able to link tables together with primary keys (columns wit unique values). If the database isn't designed properly then it is impossible to do some operations. So you always have to make sure you design a database properly.
jdweng
When you say table 2 are you referring to the bid or booking table?
Here is the table structure for the bid table
Here is the table structure for the booking table
Hope it helps makes things clearer! -
Applescript - how do I use the result of a library return value
Hello. Been using applescript for about a week. Very new.
I'm using the following script below using an external libarary to query mysql database on external server. works. gives results. How do I save them to do something with the.
when I run it, the results of the call to the library show up in the results window. that makes sense.
ie
{rows:1, cols:1, record_data:{{"85016 "}}}
I want to assign the results to a variable to use it later, particularly the 85016.
I try "set testVariable to tell db_link to do_select(theDBCommand)"
no good. Not sure how to do this.
Help appreciated.
Script follows:
-- links to the mysql tools - thanks to http://www.j-schell.de/node/80
set library_path to "js_aux_scripts:mysql_objects.scptd"
set app_support to (path to application support folder) as string
set DB_Library to (load script file (app_support & library_path))
set db_link to new_link("lala.yadayada.com", "user", "pass", "db") of DB_Library
-- collect the job number you want to run
-- Get the Number
set displayString to "Enter Job Number"
set the theIcon to 1
set theJobNumber to ""
repeat
display dialog displayString default answer theJobNumber with icon theIcon
set theJobNumber to text returned of result
try
if theJobNumber = "" then error
set theJobNumber to theJobNumber as number
exit repeat
on error
set displayString to "INVALID ENTRY! " & displayString
set theIcon to 0
end try
end repeat
-- Query the database and get the other informtion from the ticket file.
set theDBCommand to "SELECT BaseId from SfComp where JobNo = " & theJobNumber
tell db_link to do_select(theDBCommand)Usually you would assign the variable to the results of the command/function, which are inside the tell statement -for example:
tell db_link to set testVariable to do_select(theDBCommand)
The results are a record, where it looks like record_data is a list of lists (although your example only has one item), so for that you can specify the particular property you are intereste in, for example:
get first item of first item of record_data of testVariable -
How to use the result of a sql query for a max () function
Hi
I wrote a query on which i wrote
"select max(id) from users "
how can i use the returned value.
if i made the var name ="userid"
can it be userid.rows[0] or what.
thnx for any helpHi!
The result of this query will be the max ID of users' IDs.
Let say we have:
String sql="select max(users.id) from users";
Statement st = ctx.conn.createStatement();
ResultSet rs = st.executeQuery(sql);
rs.next();
So you can get the max Id in the following way:
int maxId=rs.getInt("id");
Regards,
Rossi -
Using the results of one recordset to filter another.
Hi
I have a dynamically generated web page that uses a recordset to gather most of the relevant information that is needed on it. However, what i need to do is create a second record set on the same page and filter that second recordset using one of the results generated from the first recordset. The problem that i am having is that the first recordset displays its information as an echo <?php echo $row_Recordset1['move_type']; ?> but i obviously cannot use this echo code in the filter for the second recordset, the code obviously needs tweaking but i am not sure how.
If it were as simple as copy and paste the query i would need for the recordset2 is as follows but i am unsure how to code the echo from the first recordset. I am well aware that the following code could never work but i hope it works as simplified example of my intention.
SELECT ID, move_name, catagory_link_path, move_type, mem_on_off
FROM moves
WHERE move_type = <?php echo $row_Recordset1['move_type']; ?>
ORDER BY move_name ASC
Any help would be appreciatedI can think of two ways this can be done. One way, (which may or may not be appropriate in your case) is to use an INNER JOIN. Here is an example:
$presenterset1=mysql_query("SELECT * FROM presenters INNER JOIN presenters_course USING (presenter_id) WHERE course_id='$course_id' ORDER BY presenter_rank");
Do a search for tutorials on INNER JOIN for information about how to use it.
Another possible solution is to nest one SQL statement within the result of another: like this:
$sql1=mysql_query("SELECT one, two, three from table1 WHERE one='$one'");
while ($result1=mysql_fetch_assoc($sql1)){
extract ($result1);
$sql2=mysql_query("SELECT apple, orange, pear from table2 WHERE fruit='$three'");
while ($result2=mysql_fetch_assoc($sql2)){
extract ($result2);
echo "$apple and $orange" and $pear<br/>"; -
Using the result of Get-ADOrganizationalUnit into an array.
Hello all!
I'm hoping you can help me with the following challange. What I want to accomplish:
I'm building a PowerShell script that will parse all the servernames from multiple OU's through the RDCman Set-Rdg script build by timdun @
http://blogs.msdn.com/b/timid/archive/2013/03/25/rdcman-config-files-rdg.aspx. I'm doing this on a OU basis because this will give an better overview (treeview) in RDCman.
So far I can accomplish this by naming each OU individually (see: $ouA, $ouB, etc). See the following script:
$domain = "dc=domain,dc=subdomain,dc=address,dc=com"
$ou1 = "FABRIC"
$ou2 = "Servers"
$outputfile = "c:\temp\hostnames.txt"
Import-Module ActiveDirectory
$ints = @($ouA, $ouB, $ouC, $ouD, $ouE, $ouF, $ouG, $ouH, $ouI, $ouJ, $ouK, $ouL, $ouM, $ouN, $ouO, $ouP, $ouQ, $ouR, $ouS)
foreach ($i in $ints){
$servername = Get-ADComputer -SearchBase "OU=$i,OU=$ou2,OU=$ou1,$domain" -Filter '*' | Select -Expand DNShostname
$servername > $outputfile
Get-content $outputfile | c:\temp\Set-Rdg.ps1 -Pattern '(..)' -Taxonomy $domain, $ou1, $i -nobackup
To the question: I'd like to automate this process. I used the command Get-ADOrganizationalUnit command to give me a list of sub OU's.
$oucollection = Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase "OU=$ou2,OU=$ou1,$domain" -SearchScope OneLevel | FT Name
The result is als follows:
Name
OU1
OU2
OU3
OU4
etc
My question is: how to rebuild the result from above so that I can use this in $ints (see script) so that i don't have to name each OU individually...
Many thanks in advance!Hi j-tt,
this should certainly work. However ... if instead of Name you select the distinguishedName, you could use the whole dn as searchbase, instead of the construct you are currently using. Here's an Example after some slight rewrite:
# Import the Active Directory Modules
Import-Module ActiveDirectory
# Grab all sub-OUs of the Search-Base, then retrieve their DistinguishedNames and Names
Get-ADOrganizationalUnit -Filter "*" -SearchBase "OU=Servers,OU=FABRIC,dc=domain,dc=subdomain,dc=address,dc=com" -SearchScope OneLeve | Select Name, DistinguishedName | ForEach{
# Save OU into Variable
$OU = $_.Name
# For each OU found, get all contained computers, extract their DNSHostnames and pass those into the script
Get-ADComputer -SearchBase $_.DistinguishedName -Filter "*" | Select -ExpandProperty DNSHostname | c:\temp\Set-Rdg.ps1 -Pattern '(..)' -Taxonomy "dc=domain,dc=subdomain,dc=address,dc=com", "FABRIC", $OU -nobackup
I'll admit I might have gone a bit wild with the pipelines here :)
Cheers,
Fred
Edit: Fixed my shortened Version to include the Taxonomy parameters
There's no place like 127.0.0.1 -
Using the results of one Query in a workbook as a filter in another query
Hello!
I'd like to have one workbook which my users can execute and the result from one Query (e,g, Customer Account Number) will then be used as a filter in a second query (which would be from a different cube).
Can this be done?
Cheers.Hi,
As far as I understand your requirement, you want to pass the result of one query to another query as a filter.
Well you can do this, by Using Replacement Path Variable.
For e.g. you want to pass Values of Custmomer Account Number to another query. In the second query, create one variable on Customer Account Number with type Replacment Path. Here it will ask you to enter the name of the query from which you would like to take the values of Customer Account Number.
When you will run the second query , it will execute the first query from which you want to read the customer accoutn number in the back-end. And it willl display the output the second query as per the valeus of customer account number.
This will help.
- Jaimin
Maybe you are looking for
-
Delete songs from a playlist folder?
I am trying to delete some songs from a playlist folder. Songs won't delete from any folder, regardless of whether i am in itunes 10 or the newly installed itunes 12. The delete function is greyed out. In playlists, yeah I can delete songs. But in fo
-
Firewire daisy-chain trouble with Leopard. Will a hub help?
I cannot get reliable daisy-chaining of my external Firewire drives under Leopard. A Firewire drive directly attached to computer will work, but subsequent daisy-chains to this drive will not mount more than half the time. I ended up getting corrupti
-
Persistent messages from a stranger.
I'm getting messages from "wynnbailey268". They're blocked and the explanation shown is "You are currently blocking messages from users who are not in your contact list. To communicate with this user you will need to either add them to your contacts
-
Tried to convert a large PDF to word. Timed Out....tried 3 times
I tried to convert a very large PDF document to word three times; it timed out all three times, solution? Thanks Rick
-
Where to find Adobe PhotoDeluxe 3.0 ?
Not sure where to post this, but I need to have Adobe PhotoDeluxe 3.0 (for my old G4 computer). I'm sure I can download it from somewhere since it's an old application/software, but where ?