|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 o2 I$ M7 G: c9 c
Teamcenter ITK二次开发源码分享: 创建一个工作流8 k8 `$ |5 y8 a" q
0 s4 k) |; f, N2 G) ~7 u1 h- /*HEAD CREATE_A_PROCESS CCC ITK */
9 P8 A& i3 y" x0 m - #include <stdlib.h>* ~9 A* K( C( J
- #include <TCcore/aom.h>
+ k( [3 L- g1 g; F3 i$ v _* A - #include <tc/emh.h>, }/ c, B0 ]1 G0 |8 @- G
- #include <epm/epm.h>
) I' x1 h I* \$ n - #include <tc/tc.h>
$ ]8 C2 f, |! u$ f: W - #include <sa/tcfile.h> j g( }* Y4 `
- #include <itk/mem.h>2 a9 K3 R, l; {2 a+ W
D+ X# u# H3 l& ^- #define EXIT_FAILURE 1 0 b( a6 S" z3 Z: ~ \. {" P
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
}0 Q8 x9 b* z8 Z/ r' ?0 O - static void report_error( char *file, int line, char *function, int return_code)1 `2 T4 i1 }6 ]. r& V4 n
- {
, p: `& |2 X/ ]. H - if (return_code != ITK_ok), i% E5 I- B9 L8 M) c9 v5 `
- {
1 R" ?2 b8 W* i - char *error_message_string;
6 H# T \* D, |5 h; Q$ o - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
; y" K$ @3 z- G# K l- {* P - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% F. n. y2 @5 {9 v) ~) w) O5 |5 [5 G
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);/ c* f7 s; X# F- _% U; D
- if(error_message_string) MEM_free(error_message_string);2 Q: }1 `( B+ K% h
- printf("\nExiting program!\n");
, o! l) L; V* U3 t% x! n) d - exit (EXIT_FAILURE);
; N% c( ?# u3 s - }
/ H* W# ?& J: f" c e j: | - }
: E: ~# {6 D6 @) \
4 Q2 v# V+ F9 S3 n6 R4 W/ p- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
( D9 x& Z' W2 |& Z, y - static void check_value( char *function, int value )
! E3 v9 W5 ?" F/ M& s( L7 |3 y - {
, x# z1 \& j" s. h6 r - if (value == 0)& ^- f1 |! X- [. K4 Z+ f: p
- {
! a! T6 d" Z8 E - printf ("\t%s is NULL\n", function);
$ W" e/ I! ? h$ h7 c* c4 b- d: A2 X - printf("\nExiting program!\n");9 q. u! h# @7 z; h
- exit (EXIT_FAILURE); 0 s5 `1 I; w7 i6 \+ M; ^ {2 u5 n
- }
3 L; {3 R, ?& U+ A) l - }
0 i7 e2 c& F7 f# B
# @ b8 N( s/ |. [ j' D- 2 W0 V& M! h, l7 A B+ W
- static void do_it(void)4 f- P* g+ O' f& ?! W K0 _
- {" \, e# ?$ w- x
- int 1 A3 ^) g$ n [! [, W
- attach_types[1] = {1};, W& q1 t# l7 z8 P: d; B
- tag_t : K( Q$ O7 r3 U7 Z0 R
- rev = NULLTAG, 2 P3 n8 p) T5 J/ V
- process_template = NULLTAG, ) I' o2 q/ @' R
- process = NULLTAG;
% `* J6 H! i; R5 Q/ \ - ' t! @& L( v# |
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
. G/ U. o' z- J( J - EXIT_IF_NULL( rev );
. Q* I0 z0 e7 O" R% { - 4 @* f* l( U1 H* ^# w; N5 j4 Y) ?
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 1 g5 p# K/ \7 w5 q& R
- EXIT_IF_NULL( process_template );
, R7 h6 b H* Q/ K# g/ q# C" x
5 ?) ^" W% C6 e- & t2 x- D0 T( z2 W; Q0 I
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
5 o: A9 |. `5 m; N* v& p0 c - attach_types, &process) );. H" W$ v' [/ S/ [! x1 g7 \
- , S" n: _0 G. E+ m' m7 q
- EXIT_IF_NULL( process );, o) y% f- n% Y6 Z/ q
- }: I6 p! L$ ]" c; q9 {
- $ u1 H2 ^; V) s& o) M' U! V
- int ITK_user_main(int argc, char* argv[])
- s* m4 M( H7 _% ~; L - {
3 R. r# l2 Y1 R* i9 k8 k- t - int
' ^* L- a4 R" ?, C) J - status = 0;
4 Q" U' z; U& \. P+ ]2 H3 y -
( \' y. r2 d" e - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
/ c/ t9 q& Y) f v8 A% P ^4 r - status = ITK_auto_login();
8 e5 p) x. b* Z# | - - t1 ?7 n2 Y9 u8 B5 C% u
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
6 w$ I6 L2 X3 G: p3 N- i - else# @ s" x2 X+ B' H
- {
. K, R$ d5 E7 t" }2 w - printf("\nLogin successful!\n\n");
, k8 V9 i# P" g( V) P2 X3 p - ITK_set_journalling(TRUE);( P$ O/ V5 a) c$ F, Q8 Y1 n6 r
- do_it();9 [! ?' D( Y$ C# w& G
- }( d# v+ @1 \9 z' m: L3 z
- ITK_exit_module(TRUE);
. o9 j/ z/ N' o+ K2 l8 q - return status;% n5 v1 B" y1 q( K
- }
复制代码 ! k% S/ \& @$ {! `6 l0 u/ B
5 J+ M/ z: L0 p
- J; B: t# P* X7 b# W& F) R) P |
|