|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 P- z# d8 p7 I G; Q& cTeamcenter ITK二次开发源码分享: 创建一个工作流
" K- x. [2 e7 A. Z1 H
' C1 l# g+ _' g; l8 f- /*HEAD CREATE_A_PROCESS CCC ITK */5 `3 O9 r. C# R2 |
- #include <stdlib.h>
( |' U2 G: m0 y2 A' S4 n- @4 q - #include <TCcore/aom.h>/ W4 j+ c' U' V8 X* a* L+ u" j- D
- #include <tc/emh.h>4 _# R2 A; m# a1 ~7 X7 `
- #include <epm/epm.h>
( |8 W, q4 C" ?$ v$ W1 u - #include <tc/tc.h>1 }$ d/ B6 }7 r. @( N) u$ i
- #include <sa/tcfile.h>
% R) @; |, I# f( \; x1 X8 u& C5 c3 i - #include <itk/mem.h>9 i( s2 h7 p& k8 [/ L; M5 b
" S3 C) N2 y, V; f- #define EXIT_FAILURE 1
; J+ U- n- x; s: b( v5 w - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& U$ h; G9 V" ^' D" Z/ k! ]& Q
- static void report_error( char *file, int line, char *function, int return_code)( {1 R" e; ]- n7 A% E: ]- t4 Z
- {
! J7 Z2 ~ R. \ P: Q( O/ p - if (return_code != ITK_ok)
. W E- J" }6 o- ` - {
, q5 Z- x/ p' s3 f" C - char *error_message_string;
0 t8 Y1 E" Z+ w$ |; a - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
_3 g; e' @8 D9 N: b! ^ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);; U/ Z* K" T! q4 O4 Q* l( _1 T+ [
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; _! P g9 ~ c _. [
- if(error_message_string) MEM_free(error_message_string);. u% o+ C, Z* ]1 i7 y
- printf("\nExiting program!\n");
6 K3 Y b0 V. Z6 ?6 Z - exit (EXIT_FAILURE); # E2 \$ K. O$ Z/ V& s
- }
, }. y" F0 U8 W4 F- q$ c - }
5 v0 D2 c5 a' f: w2 n
+ d9 Q0 H4 C" h. [9 C+ h0 o- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
0 j& G& V! U1 z6 \/ O* ] - static void check_value( char *function, int value )! `$ t3 P1 \7 V9 c P, _
- {8 O. f! H9 y! N# M$ y/ P
- if (value == 0)
5 @5 ^2 ^1 j* a4 I& O; x - {
1 L8 g4 B7 `9 o) A; U# ^ - printf ("\t%s is NULL\n", function);) }( \; |3 x) P* I5 ]
- printf("\nExiting program!\n");5 n+ y, W* {, {6 [% ^
- exit (EXIT_FAILURE);
l6 [3 F1 n3 ]1 F - }
$ `+ x# \2 `' e4 o# v$ C - }) \5 I( d6 J/ V" j3 [- L+ Y
( T) G2 h0 K# c+ D$ A- ; V3 \# D" d8 n
- static void do_it(void)
: k& e8 m5 m7 w - {$ x$ Y9 ~- s' o$ f
- int 1 ?/ X6 W8 n" S# ]
- attach_types[1] = {1};
/ H+ `9 W: L* g4 H6 q# u* l - tag_t
( c( P6 [8 r* ^# v, R2 a3 a& D2 U - rev = NULLTAG, 4 A' j8 R9 A# V1 V( i7 J( ?
- process_template = NULLTAG,
& f+ {+ e( {' F$ W$ a - process = NULLTAG;
8 K0 g$ _6 `4 W5 P- \ - & _" N1 |) [1 a$ V
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
. b& Z& W$ _4 X% k- P3 N, f- j - EXIT_IF_NULL( rev );
9 W' a; ^. Q5 V1 n' k, i I1 } - + _2 d7 Z( u" z
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 p3 n u0 Y3 B2 ~: m7 e
- EXIT_IF_NULL( process_template );2 C$ h$ w, b: N6 o; W
3 Q; K; s3 V/ b* V# Q0 |
3 K/ ~' }; i# u: w. a9 S- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 N4 ~/ M x9 j+ C: @/ r# H
- attach_types, &process) );8 d. j- H# L! C( c
- 9 G+ \5 f. \# D' m3 G0 t, U
- EXIT_IF_NULL( process );/ H% S9 p' e8 @) y# n
- }( o4 s3 _- r! W2 k4 s
- + b$ H# I4 H8 q; W; U- V3 k( n- v2 n
- int ITK_user_main(int argc, char* argv[])
3 T# T# b( G4 X1 I3 W1 ^: N - {' I) v* [: R" D- ~- i; u9 h4 z. V. G
- int
% @5 W6 }# J! k& C% M - status = 0; 9 c, v# X: K+ ^; C2 k' E# R; E
- 7 p) y$ [# q! {% K0 s, G. h8 z
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
. N5 W5 O5 O7 b - status = ITK_auto_login();
& b, f2 a7 b# r' v8 h - 6 _. ]+ a1 l; W& A+ _7 z- @
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");1 Z7 Z7 m3 \0 M3 G$ x* v' s" E
- else ]3 x4 p" _) \% f
- {* F7 W- y7 r- B% k
- printf("\nLogin successful!\n\n");
. l- S3 a8 ]* i" I - ITK_set_journalling(TRUE);. T9 _- ^8 L# A i/ ^
- do_it();
Y, R/ m/ E x& p# j/ D3 j" l3 P1 m - }: j8 Y8 R% |6 h
- ITK_exit_module(TRUE);5 K# t, q6 m+ f, p5 q
- return status;7 a) i7 Y2 C0 u5 B1 {* z9 w
- }
复制代码 # d) F! B& e( E- ^" F" b
& F6 [7 R- i/ q) @& y0 _+ c/ ]- ^( _& @2 G
|
|