|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, [' L1 W: ?7 a: e
Teamcenter ITK二次开发源码分享: 创建一个工作流
; F6 Y/ N8 K; T; N* p s' d! D9 T! x% u: M- ^
- /*HEAD CREATE_A_PROCESS CCC ITK */
& ^% y0 ?, M4 H" U. @ - #include <stdlib.h>
0 e' g+ ~; b, C5 m9 z7 Y$ H - #include <TCcore/aom.h> N$ h1 A$ ?+ ]+ z3 S" a
- #include <tc/emh.h>0 X; b( t# s! v% M
- #include <epm/epm.h>
7 j- q+ B c, a. `5 P2 m. `& p - #include <tc/tc.h>; ~9 U* k& W+ q0 D" l+ L
- #include <sa/tcfile.h>5 u: K" A3 F" P9 V+ c
- #include <itk/mem.h>
( R$ l9 [3 c L; n - , s! k2 N# }+ k0 t, }% [+ g- u
- #define EXIT_FAILURE 1 . i- T( l3 Y- |+ r* E! p6 h
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
- J" P4 K+ ^6 g5 I9 R: Z - static void report_error( char *file, int line, char *function, int return_code)% J1 Z" L! @2 O( Z$ I8 v( E9 L N2 X6 v/ u
- {
" s/ h) U I# S: c - if (return_code != ITK_ok)* W; n* d3 L9 c; U$ q
- {
& W' ~; K) q3 N; O! z3 @ - char *error_message_string;
, G0 K. {6 [& ~3 b# {* _ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);+ a* K2 @) \( b! O( k( f
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
$ `9 I8 x. D( S! u - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; f9 a k1 l6 b& U$ W7 u4 Z$ x
- if(error_message_string) MEM_free(error_message_string);
- {2 l) t$ z( T/ E, F5 \ - printf("\nExiting program!\n");, B7 C. j* y* a8 d+ t0 I+ g# T" B
- exit (EXIT_FAILURE);
4 o4 h2 U% ]% H6 Y6 B - }
+ ~ w; [: g7 G ?+ d - }4 Y' O5 c% i: N P, o( s1 \
- . n* r( k% _& e% O
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
0 ~$ F% S7 T- t. f% m - static void check_value( char *function, int value )- `2 r: o% h( a
- {
& p9 w" y2 `7 q5 y7 B - if (value == 0). M8 ^8 z! B; u7 E$ U- H
- {4 H) m' D" F e- o4 M
- printf ("\t%s is NULL\n", function);9 |6 F7 ]3 A" z# D2 S; G' F* o
- printf("\nExiting program!\n");5 z/ t1 s, f2 I. c
- exit (EXIT_FAILURE); * T4 I# x; K H3 r
- }3 {7 a: I* L. |1 h% k8 S
- }4 ^( x& {- F$ N+ @6 Y) y
- 5 T( A+ F2 K) N+ v8 q+ v
- + v+ y3 \5 g4 w K9 f8 S. f
- static void do_it(void)
5 T4 i7 @1 Y* `; \. Z8 @ - {
" E9 y: t+ I( n# ]1 @% w n2 u6 l - int
. W, X% c0 h2 G+ c6 I. C' V - attach_types[1] = {1};
* z# T# u( }5 g Y" }2 ^9 y: Y3 l" | - tag_t
$ r' _! {. p8 E, | - rev = NULLTAG, 0 _9 A: j9 E$ d6 @6 s! l- N$ c
- process_template = NULLTAG,
& D# [2 h# u4 F5 a V - process = NULLTAG;% B0 ?( j; [; a4 S+ ?5 y
- 2 u4 s1 u6 B% W+ \) k
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
8 z# j# Z- L) c' g4 z3 U - EXIT_IF_NULL( rev );
; ^+ u: y! Q7 n, B
0 U# w% c3 ~& t" ]' R9 y; J- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ x1 _9 V/ [% s# y6 s( @
- EXIT_IF_NULL( process_template );' k; K. `( x+ g9 u( A1 q ?: z, i
- 0 x. f( p3 O8 X# H) Y
, X& o) F( O; m0 E+ w3 K- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
7 |+ Z) |% N7 [& M9 S4 r: R - attach_types, &process) );( ^+ R$ q; Y; C- @ _: `
4 [ G% ]+ s A- EXIT_IF_NULL( process );5 k0 O, z9 F# ]- v9 K8 C
- }& ~) e" V. B# b! s+ u5 [0 r7 O
- * g) w0 D$ W( D2 W7 p6 v* m
- int ITK_user_main(int argc, char* argv[])8 s3 V* e2 w2 r
- {/ v O% b! B% _+ ]8 z0 F
- int
( a9 \" d7 O* H: y1 k {8 j8 T - status = 0; ' t" X1 M. z( K$ N
-
% |- N: [& \* L @' Q* K4 P - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
2 D3 q: C7 M) I - status = ITK_auto_login();
7 E% x$ L) R3 g: B6 t2 c; ~4 c -
2 G" g. E" _$ m( F, J9 {6 r - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
6 u6 d1 V0 O8 p: f/ h" S - else
$ I+ q! R& t! t5 u& J - {7 N0 v2 i1 Q% D8 s: ]( m" N9 G( F3 r8 B$ t
- printf("\nLogin successful!\n\n");
6 f2 h# v* g2 @ - ITK_set_journalling(TRUE);
2 C* J) w3 q' f# A* J; p - do_it();7 X1 q1 p7 N0 z& v2 w" `; f1 P
- }
. H# ~. P+ L. a$ j3 c8 t1 n - ITK_exit_module(TRUE);
2 K0 Z! w) O- g6 x7 H - return status;
# \- _7 c+ U! u, D* \& L# e* u - }
复制代码
K5 N |1 W9 E. o3 L3 T/ f9 Y' _8 \7 | K9 ]5 x" K2 H. R
" Q7 r5 q6 l1 Y9 o
|
|