|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 v" } C( [& @/ S
Teamcenter ITK二次开发源码分享: 创建一个工作流* b+ {" S7 l" k9 M- _ ^
- B7 G2 Y! V C( }4 f- /*HEAD CREATE_A_PROCESS CCC ITK */1 M1 }0 V4 N1 ] B& ~ E
- #include <stdlib.h>
' `& H( S7 I' o - #include <TCcore/aom.h>7 x; G% U8 e% g7 Q! l) A0 m
- #include <tc/emh.h>
# v! d D! F$ j ]* h) a/ J - #include <epm/epm.h>
9 {; w, E c8 i2 y7 _3 W4 a - #include <tc/tc.h>0 d) _* h3 _/ f
- #include <sa/tcfile.h>
% _' z1 ]: v8 a - #include <itk/mem.h>
0 r4 m: I3 _+ C+ m - 1 `5 V; A- ?1 N4 H/ B
- #define EXIT_FAILURE 1 . w# _6 T4 d5 _$ b( f! b3 w7 J
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: I) W9 k) q5 \- J3 X8 Z) { - static void report_error( char *file, int line, char *function, int return_code)
# e) R$ L' y0 I' I. c3 X - {
! J$ j) ]& a# G2 @& {' v9 c( U - if (return_code != ITK_ok)
6 v/ L! g+ {. M8 S' p - {
" S" r0 s( Z) O; I) }! B) k3 B0 T - char *error_message_string;5 w* \( L( ?/ A2 t
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 ^# ?6 J) z3 L0 u: _
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
8 f5 m$ K5 H" p0 r& k - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
# n* b7 z. u1 {' E6 ]$ W7 E - if(error_message_string) MEM_free(error_message_string);
4 Y1 a8 \) K* ~/ S6 m8 l - printf("\nExiting program!\n");
/ d& N$ v/ z3 i# w - exit (EXIT_FAILURE);
& S3 ], q5 U7 v1 }* A - }: |2 ]6 C! g3 v6 s( {0 v' s: t
- }
/ J& w: S) Z. m2 s+ r; Y
5 U" B2 u* I& T( \# _1 e- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
8 ?# Q, X! z9 }) J; N - static void check_value( char *function, int value )( P a3 t7 @! M2 T: m. R
- {
, r- \# n; x. x3 L6 Z% [5 D, d - if (value == 0)2 P h/ H5 S" N4 c$ e1 _
- {
: @/ z; g, \6 G. c, ~, Q8 t& O - printf ("\t%s is NULL\n", function);
/ p: U% I9 ~; E2 [) A - printf("\nExiting program!\n");# K/ Z/ X" _4 W, m; V1 ~
- exit (EXIT_FAILURE); % V. S# K/ q6 x- |. `2 A) |
- }
4 N+ i( p) u C. s. e# R - }
9 Y8 G1 y3 L! z a3 z& Q( N0 L - 6 s0 }2 A9 ^+ F5 u8 Y$ F
" h+ ?/ c3 c. k& _! }% o. c- static void do_it(void)
d: h5 i; z2 f( o - {
9 @" y; l- C; P- ~- ` - int ' f1 i u6 Y) J- A) V4 r
- attach_types[1] = {1};, ^' x$ S( d0 r# w+ N/ I4 T6 p
- tag_t
! l ^# i2 B D' E8 J- l! M - rev = NULLTAG, ! T1 X0 x: S: T0 o' ]
- process_template = NULLTAG, & P! {2 w. v0 @: J) P
- process = NULLTAG;1 o' B$ \" f- y O8 F& b
- ; N) a9 D* {6 ]) }' J5 C
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
. F& F5 M. o3 r% L - EXIT_IF_NULL( rev );
( V; B# \9 d* V9 r4 S1 o9 f
- z% G. J# E2 m% Y) U: a7 g- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); * h. u) I; ^" I7 w: v* ^
- EXIT_IF_NULL( process_template );# M/ @) E, a* Q0 X( c
- . W5 {) `( O$ H# `
- , E# x8 Z5 `: M; I; m ]; m, z
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ! K# S) p: b! M& w) J2 z( \
- attach_types, &process) );
. [) x* j6 }; M. {3 ~* q* U
" H: h0 \5 C N1 E8 D$ P' t- EXIT_IF_NULL( process );
9 y* q- Q _! Y- E# j- b; B - }
, v. [! q- |* }# | h - ' ^+ l4 u* }+ R
- int ITK_user_main(int argc, char* argv[])
! d4 Y" g+ A& h3 L, P - {
; l* O: \2 E }$ r+ P' N - int' `: u: S+ F2 q$ B; m
- status = 0;
$ o: E# f) H) a! h+ { - 2 M3 X7 A' A: k! m6 G
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
' L! Q, H9 G/ A2 e" M - status = ITK_auto_login();- B/ H0 z# a1 d2 O' Z) j4 I9 A
- ; l$ [1 y1 x. {0 I
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
9 r( Q" [& \' Q0 n - else4 H3 f1 m" T- D) V: _8 g/ J. ?
- {
3 |7 M! n1 P$ Q+ J |5 D3 t) w - printf("\nLogin successful!\n\n");
/ R. L; k7 R" M, r4 _' y - ITK_set_journalling(TRUE);
! S) d! {5 k$ M& H - do_it();
2 \' f' |8 x' J' s. f - }
/ N3 b8 C+ Z+ C1 F# I - ITK_exit_module(TRUE);1 b- E# ]2 T: N' s4 R) _+ a
- return status;
& u& F4 K# E+ o4 J0 g - }
复制代码
. o" b/ v; W4 E b' P6 {4 f9 j5 R( l
) \ Y1 {9 ?! u, ] |
|