|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ Z: v. v8 T4 L* r$ B7 |+ P8 E
Teamcenter ITK二次开发源码分享: 创建一个工作流
) S/ q- g& F Z3 a4 R: M3 M* d* d4 Y s* m/ B
- /*HEAD CREATE_A_PROCESS CCC ITK */
3 L# i5 L# Y" A3 B4 I. q; s- y. T! ^ - #include <stdlib.h>0 R2 A- t" x% I: }1 G% r
- #include <TCcore/aom.h>
) |: O4 A' e) n. B - #include <tc/emh.h>- `) A0 W( B; Y
- #include <epm/epm.h>4 k; Z$ V% z0 ^2 f4 A d- T
- #include <tc/tc.h>
' s7 r2 d+ j. u) b5 @1 u6 B: E - #include <sa/tcfile.h>
+ |8 |* u/ s, N: J. T8 l - #include <itk/mem.h>
- b B* g. k$ `6 f$ D2 h% Z
. n7 P/ W9 I: A( i( J) y- #define EXIT_FAILURE 1 L* G6 X- m/ S6 Q* P3 H0 i
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
* J! D: M& m$ \1 B' q - static void report_error( char *file, int line, char *function, int return_code), D) g& g, ], {! l/ x
- {& B2 [+ I/ Z9 Q# X
- if (return_code != ITK_ok)' ?: g, @( M( _- g# U) {
- {9 i7 r' @1 V& |( z: b8 d
- char *error_message_string;' p& O t+ `) a) L- L- q
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
3 g0 I# a0 \2 i - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) O1 o2 ?. F7 ?4 l
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" l9 o0 _, E$ c - if(error_message_string) MEM_free(error_message_string);
3 V8 w9 c( X% z0 _: ~ - printf("\nExiting program!\n"); [ \9 n8 {/ ~( R6 N6 ^4 l
- exit (EXIT_FAILURE);
% w) ?1 F5 j9 W2 b8 E - }5 f4 _* ]5 C+ r2 X! }5 V8 {
- }/ s9 o& N0 v7 b+ m' \( F
- ^0 ~& u' m1 q# ]1 s% B- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
2 T5 c9 p# [/ @; J0 B& C- k9 ^0 z - static void check_value( char *function, int value )
/ [5 R5 S K# A5 H: B" ?0 _: I* j - {
/ N. b9 a1 e9 i! i# m - if (value == 0)
2 R! V) @; q; @& j" E P, B' P4 f - {
. ~) H/ h! o+ E: o - printf ("\t%s is NULL\n", function);
- ^8 E$ p2 X: g, I* t - printf("\nExiting program!\n");# p8 i d# ?% ^: y" B6 w' k
- exit (EXIT_FAILURE); + Q% f1 k9 J! t! F/ i6 U, w8 X
- }
* l3 U/ v/ S. K8 @ - }2 _0 T, U! G0 ?' G
1 s# V |: T" m
$ D- l( `$ G7 n- static void do_it(void)
' z. }: T* T& ]# f" U% s4 R0 a2 C - {
3 _& g( o( L! Z( f% P - int 2 {9 ^6 a/ ?3 |% E' Y
- attach_types[1] = {1};, ?, o' g2 F/ T
- tag_t / J" x% s# A4 P
- rev = NULLTAG, ; \. k1 s/ d) h4 a) c9 p. P
- process_template = NULLTAG, , d- N7 O0 R, i9 H2 m: U" }% w
- process = NULLTAG;8 |7 Z2 m- q/ C2 Y N2 c/ c m
- ; D0 n( o7 u0 S4 @+ K" t
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) ); P: J+ h2 `: p8 k
- EXIT_IF_NULL( rev );
- z% F3 W1 \: j - 6 I+ K0 K4 H6 S1 n( E3 U
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
; n2 O! y/ B2 b6 X- C/ H! C - EXIT_IF_NULL( process_template );# Z# |2 ]' ^2 H* J1 s3 I& z+ \
* n, s3 m) N! C& G0 T
& J4 X& l' V; r6 t) I( p- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 G" ^" m3 t. k( [- b$ _
- attach_types, &process) );
/ @. ?% ]% N6 o" {3 w
8 ?7 u1 ], c3 f1 d; O- EXIT_IF_NULL( process );* ?; f* N! \! P# o$ Z" O
- }
5 F; _# a4 W n* g( S
v2 ?* Q9 F: P0 e5 H9 m- int ITK_user_main(int argc, char* argv[])
' m8 D5 A/ o8 X/ ` - {
( W0 g3 k' }- d. ^6 }; n" r - int: V. c3 k) O( M3 p+ V! r
- status = 0; ( u9 I/ _; Q, E" ~
-
) M( E7 S1 l& V3 z0 G - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 ~& |" y$ M3 W# P" ? - status = ITK_auto_login();) \# `4 `" t$ ?, G1 u3 t& B8 }
-
0 H! _0 K# j8 Z) K2 J% R' m - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");9 E/ X- f B9 X) Y+ \/ @- `( ~
- else6 Q6 C; ~* C4 J( N
- {& D* J$ P! @& x' d0 u
- printf("\nLogin successful!\n\n");
8 @8 Z0 u* B: w% ` - ITK_set_journalling(TRUE);
; `& z$ S9 m1 o) L - do_it();" x% e$ ?1 N3 J) T+ ?1 j; w+ A# _
- }
/ I* ^6 Z9 g" j5 F' ?" t+ T/ d - ITK_exit_module(TRUE);7 r3 t0 @ w, j0 g- d: F$ i3 r
- return status;$ l8 ? I/ F3 w0 [" P6 \
- }
复制代码
7 _9 i" E9 t" Z& t3 C7 ^4 r! R& R* ~ ^
- J6 P2 I5 P; P, O+ x5 x& f) i- b3 r9 S* [6 p( V
|
|