|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
[% H {& |# L% E6 MTeamcenter ITK二次开发源码分享: 创建一个工作流 a9 R8 d$ C" | F' J3 I! j
8 q- Y. \, t/ q4 e2 p
- /*HEAD CREATE_A_PROCESS CCC ITK */
9 E I( B* @/ N; W - #include <stdlib.h>
8 `, Q# S$ h4 m% q6 `% x - #include <TCcore/aom.h>
. ^: {1 Q: D' U5 M2 D; d - #include <tc/emh.h>
1 i2 z$ p( Y1 q3 h' }- k9 V - #include <epm/epm.h>
# V; e1 c" m7 p( B - #include <tc/tc.h>
% g) k5 O# E& F5 e1 X* Z | - #include <sa/tcfile.h>
2 W5 H D/ ?6 a6 S - #include <itk/mem.h>
. u. _; Y! x0 A - & Y4 \- ]* d+ @& s
- #define EXIT_FAILURE 1
- X1 d; p7 O4 V5 N% R+ p - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))" b B6 w9 Y1 N+ C3 j
- static void report_error( char *file, int line, char *function, int return_code)) k) x- i* H# {, `; N: K* t0 H* B
- {
7 A0 }% y$ c" N' G, \ - if (return_code != ITK_ok)% L0 `5 E' H, R: R
- {
' }1 t u% e Q# }, R - char *error_message_string;8 e9 ]/ r# } E' k. F% v+ m% ~5 m
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
, H% V# |) S. F" B - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
8 R3 V- m: ]! t - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 l- E: H4 y6 k4 O+ D/ m% c
- if(error_message_string) MEM_free(error_message_string);0 p/ u0 W" q& ^) i* |$ C; F9 F3 o
- printf("\nExiting program!\n");# c0 J$ R1 M0 A. m) v
- exit (EXIT_FAILURE); 4 u( k" _1 [. ?9 Q3 c' N
- }( ~) H1 V6 n8 o# {2 q: V5 r
- }
& b9 b5 S9 ]* f; o
4 i/ e2 _7 c( R; N- #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 f! e' Y, C3 c3 y, o# M
- static void check_value( char *function, int value )) g# O- p- ^" ]9 {2 p
- {! [ R, e" `, ]8 w$ {% D" k
- if (value == 0)
8 p3 q% D2 s/ f. u - {
+ B: M) X& s4 A& ]( X! | - printf ("\t%s is NULL\n", function);
: _, @- t& W8 x$ n7 h - printf("\nExiting program!\n");/ U7 D! M# K( m1 O# [' I: J( P
- exit (EXIT_FAILURE);
$ W; ]' T* d) V; q+ Q, @# q. R - }
* Y5 w) I; n* a3 b2 I* K - }- e. i* C/ u# t n9 g |2 v
- ; ^; e0 r- k6 D; ?) e& R
- 3 g" d5 U2 n) D
- static void do_it(void)
4 L1 I, u. a# q8 u& x0 M - {
8 E: ]5 @2 D9 e! F8 ? - int
2 E k8 G1 b7 M2 A" b9 s; r( v+ m - attach_types[1] = {1};
8 `! ^) r5 I. k0 Z0 K1 F- }$ p - tag_t
4 z: D: I4 u+ {0 L - rev = NULLTAG, % B! N* ]% @1 r G- e: p9 p
- process_template = NULLTAG,
5 m5 `9 S- h, a% m# F! S - process = NULLTAG;3 k' f' Z+ ~, N& J) `
- ( h! t' k3 |; v9 r, v" w
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
: ~9 k1 A# U. s4 L6 P- o - EXIT_IF_NULL( rev );
6 Q4 b; x Q6 _2 R* Z) ]3 j: d" B - : _! E' |- U6 z7 e
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
. C: v5 B5 ~% O% H( ?* S - EXIT_IF_NULL( process_template );
, j3 q. H- r# f6 h, p1 L5 `4 x& G) P
) m5 O( n+ K, P( x! x/ T
7 `4 B, _ T, E+ o8 E- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
& U/ C- K1 Y3 j: F, Z5 C - attach_types, &process) );0 z1 j- s, @# W; k
- 5 g4 Z* u- z3 J, }- h- R
- EXIT_IF_NULL( process );7 }# H5 C' D9 T' W6 l
- }
5 m- m( P' I2 g
: C! y' W/ f% _3 j$ {. A. G- int ITK_user_main(int argc, char* argv[])6 m) n3 t6 N/ W5 c. |3 A' y% l
- {) K- v6 G9 Y& h4 ^1 ~) L# v
- int1 J: H; s* I6 I( Y9 A
- status = 0;
% |7 r K# x1 R6 |8 D3 J -
Q4 W1 u5 N4 L: h - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );8 T: ?7 u& \/ t0 Z# S' J7 x
- status = ITK_auto_login();: g5 L, f' ^7 S# `
-
2 B4 e# }4 n3 P% K; D - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");: {2 V1 k! M g. i2 r J
- else2 u/ ~4 k/ r& j; t, m4 D; m
- {1 q. v" a1 ~4 v! e1 }
- printf("\nLogin successful!\n\n");
/ Q2 f2 a# u. l4 Z) Z - ITK_set_journalling(TRUE);
8 L6 c( Z% ?" |# g: n$ F - do_it();1 I. U% H9 E. _6 P
- }
# ^% b) G1 x$ O) q7 O' f5 l - ITK_exit_module(TRUE);. O# d' F( U$ Q% m
- return status;
% K% I; F& v% V* {5 M2 p - }
复制代码
( n6 b6 L0 p# g$ c( K
' ]6 k' ?0 Q( N4 ^1 l" ^/ _9 [; F0 S
7 Q, q) i3 N l! R4 o |
|