|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 H+ P: g- U* a& i2 {4 b K% cTeamcenter ITK二次开发源码分享: 创建一个工作流, B7 Z) x5 [/ U5 O6 V
. U6 g( B2 Q& m7 `! B* E! J9 B- /*HEAD CREATE_A_PROCESS CCC ITK */
. ]# D8 Z$ P9 k: L& C - #include <stdlib.h>
5 e8 e/ I( [% F5 F8 \ - #include <TCcore/aom.h>& j& d ~7 L# v; D: Q( [" r
- #include <tc/emh.h>
3 |# l- z$ {. g7 V+ }. Y: [% i - #include <epm/epm.h>) A. ~; J) j" `) U, c7 |4 a
- #include <tc/tc.h>- c: E& @ Q6 f! `% J4 ~
- #include <sa/tcfile.h>
9 B- v+ X& p/ m0 m7 {4 Z4 H2 o - #include <itk/mem.h>
+ y6 s! u( U" I
7 ~% a2 j% K, p7 t" u- #define EXIT_FAILURE 1
5 W( |( Q, [& u% X& ~) N - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L7 x/ @8 Y6 Z1 Z$ L& p G% ^
- static void report_error( char *file, int line, char *function, int return_code)0 A7 p% D# T$ x8 x7 M* h( ]- W
- {
) o9 R) T- d: h2 f# m3 Z) E! H - if (return_code != ITK_ok)
% Q& h% O+ u c! @9 G! ^! n - {
/ X; _% O/ {" d. g" t4 s - char *error_message_string;
3 }7 j1 f' |( a; f7 s1 V, [& q: @5 @ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
9 h3 l% {) l9 [ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, a9 |9 M% Y" J8 t/ a
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
) H/ k F/ v% A' v - if(error_message_string) MEM_free(error_message_string);& G' B4 b8 `' K7 g
- printf("\nExiting program!\n");' L6 Q; ]5 \$ H% E% t8 H' n
- exit (EXIT_FAILURE);
" i) z0 k( Q& [) e( e- @ - }: W- T3 C4 u( n1 x X# L% r
- }
% C8 G. G) ]4 ] V - ) v0 {% t/ I. t
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
' u7 G& B5 q7 U7 i: I( U% A; u - static void check_value( char *function, int value )
1 H2 N% F0 W3 Q7 o! v - {
, `2 ~; P- H- G5 X) X - if (value == 0)* W8 @, s9 ?7 ]& p) K; [
- {
! u( V' X% U0 ~; K - printf ("\t%s is NULL\n", function);( k8 h2 f+ D3 g ^3 L
- printf("\nExiting program!\n");
2 U4 N9 [& e& Y8 c - exit (EXIT_FAILURE); 0 N. @ O, N6 I5 a8 G
- }# p5 H0 A2 [; Z. ~' Q# @
- }3 B! m) h* c$ T3 q3 }1 h/ I
0 s1 z5 p3 S: ]/ T/ D8 V6 b7 s$ @1 r- 0 H6 g$ e4 Z$ L: @ K/ l4 Y: _
- static void do_it(void)/ B0 v$ }8 f5 C' \) F
- {
+ e& ]: @* _; E/ q - int $ _/ }. W8 ?/ r0 q; Q6 {$ Q2 k
- attach_types[1] = {1};- ?6 S/ b) z3 s: S" Q9 G1 E: Z/ j
- tag_t
% a0 P: t* x- q$ E c8 }# k - rev = NULLTAG, & t r1 p/ s: Q
- process_template = NULLTAG,
1 Q* j8 H9 ~9 O0 ]4 j5 Q5 Z; P2 x) D3 r - process = NULLTAG;
" M- ]* [" u" k
, w# A" b4 M& Y6 j- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
* T# q: @5 z/ j2 J& I) V - EXIT_IF_NULL( rev );
9 i6 e+ o8 o* A/ [- c1 ? - % N, ~- c+ r7 r; v: o b
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
! r8 ^" c- X) Y$ F - EXIT_IF_NULL( process_template );. q/ N& n; q9 [/ E
2 o+ o+ ^- V& ]; a
% ]$ ~- I D P- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ) L6 B+ H' _4 W, I- p n! [9 _
- attach_types, &process) );1 ?* g3 @ B; f' Q* `- t
- ( `" r. k9 L" h4 i2 ?+ [( e
- EXIT_IF_NULL( process );
E2 m, H5 E1 a3 j" x - }4 ~0 F5 j% a+ }- N8 r6 w, M+ z
* a* I8 m( b( S1 ~/ O) \7 i9 `: f& p) W- int ITK_user_main(int argc, char* argv[])
/ |% a! j/ i% n+ d - {$ q( l3 t; W; M6 g8 t: j
- int- |+ e+ T) u, v! f/ M
- status = 0; : J7 w9 [/ E+ }/ c
-
* l) t4 t' J! R, l - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
& J+ }$ w0 q& [' M' D1 ` - status = ITK_auto_login();
' h, E2 {. p; f - $ ^# Y) m1 F: |. }4 P4 Q
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 I+ H8 M; |1 q
- else
$ ^* f1 U" \$ P - {
( Y3 p5 P6 [7 J$ D& D# ] - printf("\nLogin successful!\n\n");7 S: {' ?5 [3 d% g1 T/ O2 N
- ITK_set_journalling(TRUE);3 n# H! F" L2 U1 t l
- do_it();5 C. |- V3 S7 [
- }0 O- c; `6 S4 J- j' p; S
- ITK_exit_module(TRUE);: n: F" K, I8 w: N) j% T
- return status;8 G( r0 Z4 f8 t! E* Z
- }
复制代码 * {! ] g( J* k( s5 t2 E5 x
) S7 H9 B8 f! u
. J8 U6 g/ _$ Y7 [+ p: C% i3 t* g
|
|